-
-
[原创]CISCN2022-东北赛区半决赛eztp解题思路
-
发表于: 2022-6-30 15:52 13062
-
这道题就是tp3.x ⽇志包含rce的变种
找到可控点写⼊log然后包含即可
审计源码
在index路由中存在textBox
⽅法
可以看到这个⽅法能够渲染参数
接着看,在list.html
中
联合刚刚的textBox
⼀起来看textBox
有个parse_str函数解析post.query 变量覆盖,⽽ $this->display(T("Home@default/list")); 这⾥渲染了list.html,并且调⽤W⽅法
看渲染完成的php界⾯,这⾥调⽤W⽅法并且参数param是可控的
所以我们重点应该放在parse_str()
和W()
跟进R()
,这⾥会调⽤call_user_func_array
这⾥函数的名字是固定的Home\Widget\queryWidget
但是param参数可控就是,通过$this->assign("array",$array);
赋值给了array
继续跟进queryWidget
可以看到这⾥把array数组⾥的name、tag、 id作为参数去调⽤B⽅法
注意看B
注意这⾥跟的时候必须得传name和id参数,不然就进⼊if
中了,我们构造⼀下
继续跟进exec
可以看到在这⾥,我们可以执⾏任意类的任意⽅法并且参数可控,但是只有⼀个参数。
这⾥我们需要了解⼀下thinkphp3.2.3的⽂件包含漏洞,关键点就是File.class.php ⾥的变量覆盖
这时候,我们可以利⽤那个⽂件包含漏洞File.class.php中的file.load,可以任意⽂件包含,这时候再配合⽇志写
shell就ok了(⼀定要bp发包)
写⼊shell:
getflag:
query
=
name
%
253d1
%
2526id
%
3d1
%
2526tag
%
3d1
query
=
name
%
253d1
%
2526id
%
3d1
%
2526tag
%
3d1
赞赏记录
参与人
雪币
留言
时间
一笑人间万事
为你点赞~
2023-1-12 03:50
shinratensei
为你点赞~
2022-7-15 11:15
伟叔叔
为你点赞~
2022-7-15 10:52
H3h3QAQ
为你点赞~
2022-7-1 17:58
赞赏
他的文章
- 牧云·主机管理助手测评 6654
- [原创]JAVA安全—反射 828
- [原创]CISCN2022-东北赛区半决赛eztp解题思路 13063
- [XCTF]第四期个人能力认证考核个人wp 9679
- [原创]记录一次对某CMS漏洞挖掘 1488
看原图
赞赏
雪币:
留言: