演示案例
- demo 代码段自写和规则写分析
- hsycms-TP 框架-不安全写法-未过滤
- weipan21-TP 框架-规则写法-内置过滤
demo 代码段自写和规则写分析
1.追踪对应
- <1>结合入口路由配合对应
- 1.入口所在文件:public/index.php 或 根目录下index.php
-
- 2.路由介绍:
- 路由是用于规划(一般同时也会进行简化)请求的访问地址,在访问地址和实际操作方法之间建立一个路由规则 => 路由地址的映射关系。
- 路由定义:app或aplication/route
-
-
- 3.url访问路径:/模块/控制器/操作/【参数名/参数值】
- app/index.php/controller/index
-
- 1.入口所在文件:public/index.php 或 根目录下index.php
- <2>调试模式信息获取对应
- 目录 app/config.php
- 将下面这两个修改为true
-
- <3>断点调项目执行式追踪
- 利用phpstorn
- <4>view和controller
-
- <5>目录结构
-
2.版本查看
- /thinkphp/base.php
- /ThinkPHP/ThinkPHP.php
- /thinkphp/library/think/App.php
3.调试开关
- config/php
- app_debug="true"
- app_trace="true"
4.输出调试
- echo
- var_dump
5.审计写法分析
hsycms-TP 框架-不安全写法-未过滤
- 1.打开网站
-
- 2.先开启调试
- app/config.php
-
- 3.查看入口文件,发现是app
- 根目录/index.php
-
- 4.查看路由定义
-
- 5.对我们访问的链接进行分析
- url:sql.tmzo.club/product/132.html
- 方法一,对应路由定义分析
-
- 方法二:调式
-
- 6.接下来,我们审计代码
- 1.根据url,分析对应的文件
-
- 2.于是我们从news,url进行测试
-
- 3.输入id151aaa,发现成功
-
- 4.开始注入,但我们发现有魔术引号
-
- 5.所以我们是一下sqlmap
- 命令:sqlmap -u http://sql.tmzo.club/news/150*.html --batch --current-user --current-db
-
- 6.我们发现注入成功!
- 7.修复方法,按照thinkphp官方写法即可。
-
- 1.根据url,分析对应的文件
weipan21-TP 框架-规则写法-内置过滤
- <1>通过url地址可以猜测到路由地址未更改
-
- <2>审计源码,发现均使用了规则写法,追踪调试,也没发现漏洞。
- <3>查看版本,网上搜索相关版本对应的漏洞,使用公开payload测试,寻找可能的漏洞点。
- thinkphp历史漏洞集合:https://github.com/Mochazz/ThinkPHP-Vuln
- thinkphp历史漏洞集合:https://github.com/Mochazz/ThinkPHP-Vuln
- <4>查看框架历次更新说明,寻找可能的漏洞点。重点看每次版本迭代都修改了哪些代码,找到对应漏洞点。很多漏洞可能网上并没有发布,通过这种方法可以分析出来。
-
相关链接
- 54:代码审计-TP5框架审计写法分析及代码追踪 - zhengna - 博客园 (cnblogs.com)
- GitHub - Mochazz/ThinkPHP-Vuln: 关于ThinkPHP框架的历史漏洞分析集合