
我们先使用/index.php/index/index/test,就是图中的test()方法

/index.php/index/index/index,这个回显就是111

http://127.0.0.1:83/index.php/index/index/test2?x=123456
public function test2()
{
$x=$_GET['x'];
return $x;
}

这里再做一个案例更详细一点,我们这里定义了一个login,我们如何得到后台登陆回显呢,按照TP官方方式尝试,然后我们更换了文件夹,上面的更改为namespace app\admin\controller;

http://127.0.0.1:83/index.php/admin/index/login
这里成功了,那就再次解释一遍,就是index.php/这个是固定的,然后/admin就是我们的admin模块,也就是这个文件夹,控制器就是index.php,操作就是login这个方法,这样我们就能用TP官方方法访问了

第二种访问方法就是
http://127.0.0.1:83/index.php?s=/admin/index/login

早期版本,TP3版本附近
有的时候还会出现index.php?s=admin&m=index&a=login
这是什么意思呢,就是三个参数分别指向模块、控制器、操作,也就是我的admin目录,index模块,login操作
这样我们就能逆推功能点,这样可以在白盒应用中体现出来
3、请求变量-数据接受
请求对象,提交方法,助手函数等
这里使用REQUEST


这里就接受到信息了,这里定义的方式太多,可以自行选择使用哪种方式获取信息

4、数据库操作-应用对象
引用DB类,基本查询,助手函数等
public function loginin(Requset $request)
{
$id = input('get.id');
$data=Db::table('admin')->where('id',$id)->find();
var_dump($data);
}
THINKPHP

这里就能上梭哈工具检测,并且能一键利用

5、前端页面渲染-MVC模型
引擎配置,渲染变量,模版输出等
TP框架-写法安全
1、自写代码逻辑
例子1:自己不合规的代码写法
自己审计代码,看一下他的缺陷
例子2:一半框架一半自写代码
例子3:框架标准内置代码写法
官方写法就看版本漏洞,通杀或者找逻辑,有sql注入需要有相应的代码功能
2、框架版本安全
https://github.com/Mochazz/ThinkPHP-Vuln
例子1:写法内置安全绕过-TP5-SQL注入
例子2:内置版本安全漏洞-TP5-代码执行
TP框架-代审案例:
WeMall-TP5框架开发

这里拿一套源码,先看一下thinkphp版本号,然后找历史漏洞
这里打开发现什么都没有,伪静态,搭建时配置一下文件

搭建时候配置一下即可


上一下梭哈工具测试一下漏洞

拿下s
