027-PHP应用&TP框架&路由访问&对象操作&内置过滤绕过&核心漏洞

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等