0x01 环境搭建
1. 从官方下载靶机环境,解压到本地,双击OVF文件直接导入到vmware虚拟机里面。
2. 将虚拟机的网络适配器调成NAT模式,然后开机即可进行操作了。
0x02 主机发现
nmap -sn 192.168.2.0/24
成功获取靶机IP为192.168.2.129。
0x03 端口扫描
nmap 192.168.2.129
简单扫下端口,发现该靶机开放了22,和80端口。
0x04 目录扫描
开放了web端口,那必然要扫一下目录。
dirsearch.py -u http://192.168.2.129
扫出了这么多php文件,我们依次去访问看看每个文件的作用。
1. add.php 是一个文件上传功能的页面。尝试了一下上传图片,无法判断是否上传成功。
2. /in 是一个phpinfo的界面,在这里我们可以看到网站根目录为/var/www
3. index.php是一个前台登录界面,感觉大概率存在SQL注入。
4. /phpmy/ 是一个phpmyadmin的登陆界面,尝试了下弱口令登录,未能成功。
5. /test.php 提示缺少file参数,先尝试GET传参加/etc/passwd还是提示少了,再次尝试POST传参就直接下载了。因此test.php应该是一个存在文件包含漏洞的页面。
6. /c 可能存在c.php文件。
0x05 渗透思路
1. 存在文件包含,那么就可以读取源码,可以尝试将响应码为200的都读一遍。比如首页的index.php,这样我们就可以审计源码了。
2. 存在文件包含,存在phpmyadmin,可以尝试爆破phpmyadmin的目录,找找phpmyadmin的配置文件。
3. 存在文件上传,存在文件包含,大概率有位置能上传图片马,只不过add.php可能因为某种原因无法上传。
0x06 开始尝试
以第一种思路,利用文件包含漏洞包含index.php。
提取源码的关键部分如下。
$uname=str_replace('\'','',urldecode($_POST['un']));
$pass=str_replace('\'','',urldecode($_POST['ps']));
$run='select * from auth where pass=\''.$pass.'\' and uname=\''.$uname.'\'';
分析源码可以发现该处对用户输入的单引号做了过滤处理,但是这里可以绕过。
构造SQL语句:pass=,uname=or 1=1#\