知方号 知方号

thinkphpv6.0代码审计

thinkphpv6.0代码审计

前言

正好做到一题thinkphp框架漏洞,于是决定自己审计一番~,正好学学如何入门

代码审计两种方式

1**.通读全文源码**2.功能点审计:根据漏洞对应发生函数进行功能行审计,常会用到逆向溯源数据流方法进行审计3.正向追踪数据流:根据用户输入参数->来到代码逻辑->最后审计代码逻辑缺陷->尝试构造payload4.逆向溯源数据流:字符串搜索指定操作函数_跟踪函数可控参数->审计代码逻辑缺陷->尝试构造payloadCMS可分为两大类单入口cms:不管访问哪个模块都使用同一个入口文件,常见的MVC框架采用这种模式多入口cms:每个模块都有一个入口文件(可以前端设置一个入口文件 index.php,后端创建一个入口文件admin.php,前后端的入口文件是独立的)。

代码审计思路

接下来我们从三个层次开始我们的源码审计思路

1.确定要审计的源码是什么语言

2.确定该源码是单入口还是多入口

3.确定该语言的各种漏洞诞生的函数

PHP核心配置

一个漏洞在不同环境造成的结果也是不一样的。

由于关于php.ini配置的内容过于多,这里推荐浏览官方文档 https://www.php.net/manual/zh/ini.php,我们在这里主要列下php.ini 主要使用的安全配置。

safe_mode = off

用来限制文档的存取,限制环境变量的存取,控制外部程序的执行.PHP5.4.0移除。

限制环境变量存取safe_mode_allowed_env_vars = string

指定php程序可以改变的环境变量的前缀,当这个选项的值为空时,那么php可以改变任何环境变量,如果 如:safe_mode_allowed_env_vars = PHP_,当这个选项的值为空时,那么php可以改变任何环境变量。

外部程序执行目录safe_mode_exec_dir = "/usr/local/bin"

当安全模式被激活,safe_mode_exec_dir参数限制通过exec()函数执行的可执行文件到指定的目录。举例来说,如果你想限制在/usr/local/bin目录执行功能,你可以使用这个指令:

safe_mode_exec_dir = “/usr/local/bin”

禁用函数

disable_functions

为了更安全的运行PHP,可以用此指令来禁止一些敏感函数的使用,当你想用本指令禁止一些危险函数时,切记把dl()函数也加到禁止列表,攻击者可以利用dl()函数加载自定义的php扩展突破disable_functions.配置禁止函数时可以使用逗号分隔函数名。

COM组件com.allow_dcom = false

PHP设置在安全模式下(safe_mode),仍允许攻击者使用COM()函数来创建系统组件来还行任意命令,推荐关闭这个函数。 使用COM()函数需要在PHP.ini中配置extension=php_com_dotnet.dll,如果PHPversion

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。

上一篇 没有了

下一篇没有了