代码审计-Thinkphp框架审计前置知识点

代码审计必备知识点:

1、代码审计开始前准备:

环境搭建使用,工具插件安装使用,掌握各种漏洞原理及利用,代码开发类知识点。

2、代码审计前信息收集:

审计目标的程序名,版本,当前环境(系统,中间件,脚本语言等信息),各种插件等。

3、代码审计挖掘漏洞根本:

可控变量及特定函数,不存在过滤或过滤不严谨可以绕过导致的安全漏洞。

4、代码审计展开计划:

审计项目漏洞原理->审计思路->完整源码->应用框架->验证并利用漏洞。

代码审计两种方法

功能点或关键字分析可能存在的漏洞

   -抓包或搜索关键字找到代码出处及对应文件。

   -追踪过滤或接收的数据函数,寻找触发此函数或代码的地方进行触发测试。

 

   -常规或部分MVC模型源码可以采用关键字的搜索挖掘思路。

   -框架 MVC 墨香源码一般会采用功能点分析抓包追踪挖掘思路。

1.搜索关键字找敏感函数

代码审计-Thinkphp框架审计前置知识点_第1张图片

2.根据目标功能点判断可能存在的漏洞

代码审计-Thinkphp框架审计前置知识点_第2张图片

 

 

常见漏洞关键字:

SQL注入:

select insert update mysql_query mysqli等

文件上传:

$_FILES,type="file",上传,move_uploaded_file()等 

XSS跨站:

print print_r echo sprintf die var_dump var_export等

文件包含:

include include_once require require_once等

代码执行:

eval assert preg_replace  call_user_func  call_user_func_array等

命令执行:

system exec shell_exec  ` ` passthru pcntl_exec popen proc_open等

变量覆盖:

extract() parse_str() import_request_variables() $$ 等

反序列化:

serialize() unserialize()  __construct   __destruct等

文件读取:

fopen file_get_contents fread fgets fgetss file  fpassthru parse_ini_file readfile等

文件删除:

unlink() remove()等

文件下载:

download() download_file()等

通用关键字:

$_GET,$_POST,$_REQUEST,$_FILES,$_SERVER等

 

Thinkphp框架介绍

使用thinkphp框架的源码审计思路:

1.使用源码查看工具打开源码,全局搜索thinkphp确认源码是否使用thinkphp框架

2.源码如果没有按照thinkphp框架的代码规则来写,则不会触发thinkphp框架的过滤规则。按照常规思路测试即可

3.源码如果是按照thinkphp框架的代码规则来写的,则全局搜索THINK_VERSION确认框架版本信息,根据版本漏洞来测试。否则相当于在测试框架的0day。

入口文件查找:

使用phpstorm全局搜索APP_PATH确认入口文件

代码审计-Thinkphp框架审计前置知识点_第3张图片

开启Thinkphp框架的调试开关:

打开入口文件指定的应用目录,找到config.php配置文件将app_debug和app_trace的状态更改为true。

代码审计-Thinkphp框架审计前置知识点_第4张图片

在找到database.php数据库配置文件将debug的状态更改为true。

代码审计-Thinkphp框架审计前置知识点_第5张图片

打开网站,右下角就会生成一个调试按钮:

代码审计-Thinkphp框架审计前置知识点_第6张图片

打开即可查看调试信息:

代码审计-Thinkphp框架审计前置知识点_第7张图片

案例演示:Thinkphp框架访问规则演示

ThinkPHP 5.0 在没有启用路由的情况下典型的URL访问规则是:http://域名/index.php(或其他应用入口文件)/模块/控制器/操作/参数名/参数值

访问方法:

代码审计-Thinkphp框架审计前置知识点_第8张图片

规则其实就是:入口文件/目录/类名/方法名

代码审计-Thinkphp框架审计前置知识点_第9张图片

访问方法并且传递参数:

代码审计-Thinkphp框架审计前置知识点_第10张图片

访问规则其实就是:入口文件/目录/类名/方法名/参数名/参数值

代码审计-Thinkphp框架审计前置知识点_第11张图片

你可能感兴趣的:(代码审计,网络安全,web安全)