今天继续给大家介绍渗透测试相关知识,本文主要内容是PHP代码审计之简单思路方法。
免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
再次强调:严禁对未授权设备进行渗透测试!
一、PHP代码审计简单思路
一般来说,PHP代码审计主要有以下思路:
(一)从关键字入手
代码审计一个非常常用的思路就是查找可能存在漏洞的函数、变量等,漏洞的存在依赖于站点的功能,而站点功能的实现又依赖于一些特定的代码,这些特定的代码又通常包含一些特定的关键字,我们只需要搜索这些代码,就可以快速查找可能出现漏洞的可疑点。
(二)从功能入手
另一方面,我们也可以先审查站点的功能,看是否存在数据交互、文件上传、输入输出等的功能点,找到功能点后,再根据功能点的URL地址查找具体的源代码,看是否存在漏洞。
(三)借助其他工具
此外,我们还可以借助其他工具进行审计。常见的工具有:数据库监控工具、文件监控工具、抓包工具、自动化扫描工具、断点调试工具等等。
二、PHP各漏洞搜索关键字
针对各种类型的漏洞,PHP代码中常出现的关键字如下所示:
1、SQL注入漏洞
select、insert、update、mysql_query、mysqli等。
2、文件上传漏洞
$_FILES、type=‘file’,上传(直接搜索汉字上传,因为存在上传点处很多都会又相应提示),move_upload_file()等。
3、XSS跨站漏洞
print、printr、echo、sprintf、die、var_dump、var_export等。
4、文件包含漏洞
include、include_once、require、require_once等。
5、代码执行漏洞
eval、assert、preg_replace、call_user_func、call_user_func_array等。
6、命令执行漏洞
system、exec、shell_exec、``(反引号)、passthru、pcntl_exec、popen、proc_open等。
7、变量覆盖漏洞
extract()、parse_str()、$$、parse_str()、import_request_variables()等。
8、反序列化漏洞
serialize()、unserialize()、__construct、__destruct等等。
9、其他漏洞
unlink()、file_get_contents()、show_source()、file()、fopen()等。
10、通用关键字
$_GET、$_POSR、$_SERVER、$REQUEST、$COOKIE等。
三、框架类PHP代码审计特点和方法
PHP框架有内置的相关功能函数,这些函数在内部的逻辑中,基本上都已经设置了较为完善的过滤和拦截功能。因此,当我们确定一个站点是由某个框架搭建的以后,我们需要注重以下两点。一是注意由于开发者对框架功能函数的调用不规范导致的漏洞。有可能开发者在开发某一功能的时候,使用了自己的写法,而没有利用框架中的功能函数,或者是使用了框架的写法,但是并没有完全按照流程来写。二是注意看相关框架有没有爆出相关的漏洞。我们可以根据框架的版本号,来搜索相应版本的框架存在的漏洞。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200
来源地址:https://blog.csdn.net/weixin_40228200/article/details/128682369