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

代码审计必备知识点:

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

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

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

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

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

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

4、代码审计展开计划:

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

代码审计两种方法

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

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

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

 

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

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

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

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框架的调试开关:

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

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

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

打开即可查看调试信息:

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

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

访问方法:

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

访问方法并且传递参数:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/61036.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OCR让纸质文档秒变电子文档,让自动驾驶成为现实

OCR文字识别具有广泛的应用范围,以下是一些常见和广泛应用的领域: 1. 文档数字化:OCR可以将印刷的文档、书籍、报纸等纸质文档转换为可编辑和可搜索的电子文本,从而实现文档的数字化存储和管理。这在图书馆、档案馆、企业和政府机…

webpack基础知识十:与webpack类似的工具还有哪些?区别?

一、模块化工具 模块化是一种处理复杂系统分解为更好的可管理模块的方式 可以用来分割,组织和打包应用。每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体(bundle) 在前端领域中,并非只有webpack这一款…

什么?200?跨域?

情景复现 今天我遇到了一件很奇怪的事情就是,当我请求后端网关,然后通过网关去请求相应的服务,都进行了跨域处理 但是,奇怪的是我在请求的时候,回来的响应码是200,但是报错了,报的还是200的同…

Python-OpenCV中的图像处理-图像阀值

Python-OpenCV中的图像处理-图像阀值 图像阈值单阈值自适应阈值Otsus二值化 图像阈值 单阈值 与名字一样,这种方法非常简单。但像素值高于阈值时,我们给这个像素赋予一个新值(可能是白色),否则我们给它赋予另外一种颜…

Unity之ShaderGraph 节点介绍 Procedural节点

程序化 噪声Gradient Noise(渐变或柏林噪声)Simple Noise(简单噪声)Voronoi(Voronoi 噪声) 形状Ellipse(椭圆形)Polygon(正多边形)Rectangle(矩形…

Oracle连接数据库提示 ORA-12638:身份证明检索失败

ORA-12638 是一个 Oracle 数据库的错误代码,它表示身份验证(认证)检索失败。这通常与数据库连接相关,可能由于以下几个原因之一引起: 错误的用户名或密码: 提供的数据库用户名或密码不正确,导致…

在家查阅下载AACR(美国癌症研究学会)数据库文献

AACR(美国癌症研究学会)简介: 美国癌症研究学会American Association for Cancer Research创建于1907年,是世界上成立最早、规模最大的致力于全面、创新和高水准癌症研究的科学组织。其出版物包括7种正式出版的期刊: …

Client not connected, current status:STARTING

今天项目集成Seata时遇到一个奇怪的异常,在此记录一下。 Linux环境安装Seata,使用Nacos作为配置中心、注册中心; Linux已开放端口:8848、7091、8091 在我Windows环境下可以看到Nacos运行正常,Seata运行也正常&#…

[保研/考研机试] 括号匹配问题 C++实现

题目描述: 在某个字符串(长度不超过100)中有左括号、右括号和大小写字母;规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配。写一个程序,找到无法匹配的左括号和右括号,输出原来的字符串&am…

国产芯力特SIT1024QHG四通道本地互联网络(LIN)收发器,可替代TJA1024HG

SIT1024Q 是一款四通道本地互联网络(LIN)物理层收发器,符合 LIN 2.0、LIN 2.1、LIN 2.2、 LIN 2.2A 、 ISO 17987-4:2016 (12V) 和 SAE J2602 标准。主要适用于使用 1kbps 至 20kbps 传输速 率的车载网络。 SIT1024Q 通过 TXDx 引…

idea使用protobuf

本文参考:https://blog.csdn.net/m0_37695902/article/details/129438549 再次感谢分享 什么是 protobuf ? Protocal Buffers(简称protobuf)是谷歌的一项技术,用于结构化的数据序列化、反序列化。 由于protobuf是跨语言的,所以用…