PHP应用&TP框架&路由访问&对象操作&内置过滤绕过&核心漏洞
1.TP框架-开发-配置架构&路由&MVC模型
参考官方手册:https://www.kancloud.cn/manual/thinkphp5_1
1、配置架构-导入使用
2、路由访问-URL访问:按照特定的URL规则才能访问
3、数据库操作-应用对象
4、文件上传操作-应用对象
5、前端页面渲染-MVC模型:模型(Model)、视图(View)和控制器(Controller)
将数据、业务逻辑和界面显示分离,以便于独立开发和维护
2.TP框架-安全-不安全写法&版本过滤绕过
内置代码写法
安全写法(相对安全)=官方文档推荐写法
不安全写法=用一半安全写法、原生写法(不会受到保护)
1、安全写法(规矩写法):但不是绝对安全 – > 看版本有没有对应的安全漏洞
1
2$id=request()->param('x');
$data=Db::table('news')->where('id',$id)->find();2、用一半安全写法:有安全隐患
1
2$id=request()->param('x');
$data=Db::query("select * from news where id=$id");3、纯原生写法(完全不是用TP语法):有安全隐患
1
2
3
4
5$id=$_GET['id'] ?? '1';
sql="select * from news where id=$id";
$data=mysqli_query($con,$sql);
while ($row=mysqli_fetch_row($data)) {
}
ThinkPhP历史漏洞:https://github.com/Mochazz/ThinkPHP-Vuln
3.逻辑越权漏洞:
用户身份在数据库中有uid类似的数据,这项数据不同数值会表示不同的身份(管理员,会员,游客等等),通过修改这项数据,可以跨身份。
adminid,groupid等