pikachu 2 - RCE, 文件包含, 文件上传, 越权操作, 反序列化, 重定向
pikachu 2 - RCE, 文件包含, 文件上传, 越权操作, 反序列化, 重定向RCE (远程代码执行)RCE 是一种比 sqli 更危险的代码注入, 一般来说 RCE 的注入点直接在 bash 中。利用系统终端的连接符来实现额外的指令执行。 连接符参考地址:简书 Windows: |:只执行后面的语句。 ||:如果前面的语句执行失败,则执行后面的语句。 &:两条语句都执行,如果前面的语句为假则执行后面的语句,如果前面的语句为真则不执行后面的语句。 &&:如果前面的语句为假,则直接出错,也不再执行后面的语句;前面的语句为真则两条命令都执行,前面的语句只能为真。 Linux系统: ;:执行完前面的语句再执行后面的语句,当有一条命令执行失败时,不会影响其它语句的执行。 |(管道符):将前面的语句的执行结果作为输入,...
pikachu 1 - 暴力破解, XSS, CSRF
pikachu 1 - 暴力破解, XSS, CSRF用 Docker 搭建靶场1docker run -d -p 8765:80 8023/pikachu-expect:latest 点击安装数据库即可。 配置 Burpsuite打开 BP, 查看代理配置: 应用到火狐浏览器: 下载并应用证书: 针对 firefox 浏览器, 如果目标网站在本地 ( localhost ), 则浏览器是默认不进行代理的, 要解决这个问题, 需要打开 about:config 界面, 搜索 network.proxy.allow_hijacking_localhost 并改为 true: 这样就取消了 127.0.0.1 localhost 永不经过代理的问题。 暴力破解暴力破解, 顾名思义就是通过力大砖飞的方式来枚举可能的密码组合, 不过其中也有很多技巧。 验证码绕过(on server)首先观察一下网站, 输入错误的组合: 用户名:1,密码:1,验证码:1 , 提示密码错误, 并刷新网站。 接下来打开 BP , 拦一个包看看: 此时显示网页已经刷新了, 刚刚的验证码是...
docker 3 - 容器化&迁移
docker 3 - 容器化&迁移记录一下一个项目里踩的坑: 将已有 apache-tomcat 服务迁移到 docker 中。途中遇到了, “机器码”(不是简单的MAC地址, 而是由一套算出来的特征码)莫名其妙变化, 磁盘空间不足, 转换临时文件目录, docker 迁移等问题。 需求将一个已有的可正常运行的 apache-tomcat 中的服务部署到 docker 环境中。由于这个应用有基于机器码的授权码认证机制, 需要固定每次启动的参数 (ip,mac等)。 文件准备目录结构如下: 123456tomcat-docker/├── docker-compose.yml├── Dockerfile└── webapps/ # 挂载目录 ├── ROOT/ └── ROOT_BPMUpload/ Dockerfile编写一个简单的 Dockerfile: 123456789101112131415161718# 9.0.78FROM tomcat:9.0-jdk8-openjdkLABEL...
docker 2 - 特性
docker 2: 特性Docker的本质是通过分层共享机制实现资源原子化。 分层结构假设现在有一个在 docker 中部署 tomcat 项目的交付包, 其内容结构如下: 123456789myapp-docker/├── docker-compose.yml # 容器编排核心├── dockerfile # 构建脚本├── .env # 环境变量配置├── volumes/ # 挂载目录│ └── tomcat-webapps/ # 绑定Tomcat工程目录└── services/ # 依赖服务配置 ├── redis/ # Redis配置 └── nginx/ # Nginx配置 只读层可能的例子: dockerfile 将分层实现部署; 123456# DockerfileFROM tomcat:9-jdk11 # 层1:基础层, 只读,...
Matrix 2 - CTF
Matrix 2 - CTF Vulnhub 下载: Matrix: 2 Nmap 扫描主机发现 端口扫描 信息收集代码审计先访问这个网站: 查看网页源码: 这里有个 index.js, 点进去看看内容: 这段内容比较可疑, 提到了本地的 1337 端口, 刚刚 nmap 正好也扫描到了这个端口。 除了 80 端口以外, 其他的端口服务为 ssl/http, 也就是 https, 需要留意。 用 https 协议访问 1337 端口, 弹出一个登录界面, 可能是网站管理界面的登录页面? 用刚刚源码中的信息排列组合一下, 提示错误, 先搁置。 查看 12320 端口, 是一个 web 上的 ssh 服务的登录界面。结合刚刚 nmap 扫描出的结果, 这里的服务是 Shell In ABox:通过浏览器提供 SSH 终端访问的开源工具。 继续排列组合一下已知可能的密码, 提示错误, 也只能先搁置。 查看 12321 端口, 显示 PR_CONNECT_RESET_ERROR。 查看 12322 端口, 展示的 web 页面和 80...
Matrix - CTF
Matrix - CTFvulnhub 靶机 MATRIX:I 下载地址: Vulnhub Nmap 扫描主机发现 端口扫描 访问一下这个地址。 信息收集端口扫描没有直接暴露出明显的攻击面, 先着手调查一下 80 端口这个网站。 目录爆破看一下控制台, 调整爆破的指令: 1sudo gobuster dir -u http://192.168.170.150 --wordlist=/usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -x js,json,env,config.js,log,map 没有太多结果。 查看源码调出控制台观察一下: 看到网站后台有 /assets/img/p0rt_31337.png 这个文件, 提示前往之前扫到的 31337 端口。先下载这个图片, 这个图片可能会隐藏某些信息, 比如图像隐写 (虽然可能性比较小)。 31337 端口服务尝试一下目录遍历漏洞 (../../etc/passwd), 直接跳转到...
Crypto 2 - AES-256
Crypto 2 - AES-256 AESAES 属于对称加密, 这是一种通信双方使用相同秘钥进行加密和解密的算法。以下以 AES-256 为例展开: 理论准备 有限域 $GF(2^8)$:以下所有 AES 运算都在伽罗华域 ($GF(2^8)$) 中进行。 多项式表示:把所有字节都视为一个多项式来表示。 例如字节 0xB3 = 10110011 = $x^7+x^5+x^4+x+1$ 。 不可约多项式:约定 $m(x)=x^8+x^4+x^3+x+1$ 为不可约多项式, 将所有结果都对这个结果取模即可。 加密流程总流程加密总流程如下(以 AES-256 为例): 12345678910graph TD A[128位明文] --> B[初始轮密钥加] B --> C{14轮加密循环} C -->|每轮执行| D[字节代换SubBytes] D --> E[行移位ShiftRows] E --> F[列混淆MixColumns] F -->...
Crypto 1 - RSA 详解
Crypto 1 - RSA 详解RSARSA 是一种经典的非对称加密, 其安全性基于大整数分解的困难性。 理论准备 欧拉函数: 在数论中, 用 $\phi(x)$ 来表示是满足 $gcd(n,k)= 1$, 其中 $k \in [1,x], k \in N$ 的 $k$ 的个数。 对质数 $p$, 有: $$\phi(p)=p-1$$ 对任意 $p,q$ ,若有 $gcd(p,q)=1, m=pq$, 则:$$\phi(m)=(p-1)(q-1)$$ 欧拉定理: 当 $gcd(m,n)=1$时, $$m^{\phi(n)}=1\ \bmod\ n$$ 扩展欧几里得算法: 设 $gcd(a,b)$ 用来表示 $a,b$ 的公约数个数。 扩展欧几里得算法需要找到 $x,y$ 满足 $x>y$ , 且: $$ax+by=gcd(a,b)\ \bmod\ n$$ 当令 $b=0$, 则有: $$ax=1\ \bmod\ n$$此时也称 $x$ 为 $a$...
PrivEsca1 - Linux提权总结
Linux 提权 (PrivEsca) : 枚举和典型例子提权, 也就是提升权限(Privilege Escalation), 最终获得 root 权限。渗透测试中, 提权操作是无法避免的非常重要的过程。 常用手段提权一定是对系统某种保护措施的利用, 逃逸或破坏。 一般来常用到的手段有这些: 低权限可修改高权限用户执行的脚本, 这本质上是 UGO 上的问题; 低权限运维人员也会输入/存储高权限凭据; 超越权限体系, 在其上层 (如内存) 捕获 / 修改凭据等信息和内核利用。 升级 shell 交互性在拿到任何一个用户 (即使是低权限用户) 的 shell 时, 首先应该让其交互性尽可能完整。 利用 python 来提升交互性: 1python -c 'import pty;pty.spawn("/bin/bash")' 禁用终端的输入预处理 (可以激活方向键): 1stty raw -echo 指定终端类型, 支持颜色输出和全屏程序 1export...
log4j2 复现
log4j2 复现用 docker 搭建靶机完成渗透, 理解 log4j2 漏洞。 靶机准备首先准备 docker 文件, 编辑 docker-compose.yaml: 1234567version: '2'services: solr: image: vulhub/solr:8.11.0 ports: - "8983:8983" - "5005:5005" 在同一目录执行 docker-compose up -d: 拉取完毕后启动镜像, 访问 8983 端口: log4j2 漏洞原理log4j2log4j2 是 Java 中常用的日志文件框架, 主要是帮助开发者记录程序运行时的信息, 例如调试信息, 运行错误等。 log4j2 存在一个关键特性: 支持插入动态内容, 例如变量和表达式, 并且支持插件来自定义功能, 比如解析${xxx}表达式。 看到这里已经有可以渗透的点了, 如果 Log4j2 不对用户的输入进行过滤, 那么就和 sqli...




























































