PHP代码审计(五)PHP代码审计方法与步骤

简介: (1):获取到网站源码(这就是废话……)(2):将网站部署到你自己的环境中,能运行。这里特殊说明一下我的习惯,我本地的环境与线上的环境基本上保持一致,这样在本地审计及线上部署的时候能发现更多的问题。不建议说是随便搭个环境能跑起来就行,这样不是很严谨。(3):拿到源码之后,浏览大概的项目结构。

好的代码审计方法与步骤会让你的审计事半功倍。

一:前期准备

(1):获取到网站源码(这就是废话……)

(2):将网站部署到你自己的环境中,能运行。

这里特殊说明一下我的习惯,我本地的环境与线上的环境基本上保持一致,这样在本地审计及线上部署的时候能发现更多的问题。不建议说是随便搭个环境能跑起来就行,这样不是很严谨。

(3):拿到源码之后,浏览大概的项目结构。

二:掌握大局:

(1):入口文件

index.php、admin.php文件一般是整个程序的入口,详细读一下index文件可以知道程序的架构、运行流程、包含那些配置文件,包含哪些过滤文件以及包含那些安全过滤文件,了解程序的业务逻辑

(2):配置文件

一般类似config.php、database.php等文件,保存一些数据库相关信息、程序的一些信息。先看看数据库编码,如果是gbk则可能存在宽字节注入。如果变量的值用双引号或者是反引号、则可能存在双引号解析代码执行的问题。

(3):过滤功能

通过详读 公共函数文件 和 安全过滤文件 等文件,清晰掌握用户输入的数据,哪些被过滤,哪些无过滤,在哪里被过滤了,如何过滤的,能否绕过过滤的数据。过滤的方式是替换还是正则?有没有GPC?有没有使用addslasher()处理?

三:审计方法:

1.通读全文法

通读全文发作为一种最麻烦的方法也是最全面的审计方法。特别是针对大型程序,源码成千上万行,这要读到什么时候。但是该方法也是一种必要的方法。了解整个应用的业务逻辑,才能挖掘到更多更有价值的漏洞。

2.敏感函数参数回溯法

根据敏感函数,逆向追踪参数传递的过程。

这个方法是最高效,最常用的方法。大多数漏洞的产生是因为函数的使用不当导致的。我们只要找到这样的一些使用不当的函数,就可以快速挖掘想要的漏洞。

这方面,Seay法师大大有一款神器Seay源代码审计系统,主要是利用正则匹配一些高危函数、关键函数以及敏感关键字。 然后,我们就可以分析判断敏感函数的上下文,追踪参数源头。

PHP代码审计还有另一个工具,也是一个神器Rips

最主要的是Seay只能在windows上使用,而Rips是跨平台的,通俗点说,他是使用PHP编写的的一个站点,直接部署到服务器上就可以了。

3.定向功能分析法

该方法主要是根据程序的业务逻辑来说审计的。

首先是用浏览器逐个访问浏览,看看这套程序有那些功能。根据相关功能,大概推测可能存在那些漏洞。

常见功能漏洞:(包括但不限于)

(1):程序初始安装

(2):站点信息泄漏

(3):文件上传

(4):文件管理

(5):登陆认证

(6):数据库备份恢复

(7):找回密码

(8):验证码

 最后,放一下上边提到的神器Seay源代码审计系统的软件链接:永久有效

链接:pan.baidu.com/s/1HHnniTNW…

提取码:75ji

以上就是代码审计的大概流程及方法。主要还是这个神器。

有好的建议,请在下方输入你的评论。

欢迎访问个人博客 guanchao.site

欢迎访问我的小程序:打开微信->发现->小程序->搜索“时间里的”

目录
相关文章
|
6天前
|
缓存 PHP 开发者
PHP中的自动加载机制及其优化方法
传统的PHP开发中,经常会遇到类文件加载繁琐、效率低下的情况,而PHP的自动加载机制能够很好地解决这一问题。本文将深入探讨PHP中的自动加载机制,介绍其原理及实现方式,并提出了一些优化方法,帮助开发者提升代码加载效率,提高应用性能。
|
6天前
|
SQL 缓存 PHP
PHP技术探究:优化数据库查询效率的实用方法
本文将深入探讨PHP中优化数据库查询效率的实用方法,包括索引优化、SQL语句优化以及缓存机制的应用。通过合理的优化策略和技巧,可以显著提升系统性能,提高用户体验,是PHP开发者不容忽视的重要议题。
|
6天前
|
JSON PHP 数据格式
PHP curl方法封装
PHP curl方法封装
33 0
|
5月前
|
安全 小程序 PHP
PHP代码审计(七)Rips源代码审计系统使用教程
上一篇中提到的Seay源代码审计系统是由C#编写的winform程序,现在已经停止更新了,但是,还是比较好用的。 PHP代码审计还有另一个工具,也是一个神器Rips
189 0
|
5月前
|
安全 小程序 PHP
PHP代码审计(六)Seay源代码审计系统使用教程
www.cnseay.com/ 当然,这个已经不能访问了。 软件的版本比较早,需要.NET framework3.5框架,我这里是软件启动的时候自动提醒安装,如果没有自动提醒,那么你需要手动安装.NET frameWork3.5框架,否则,程序应该是没有办法运行。
441 0
|
6天前
|
关系型数据库 MySQL PHP
【PHP 开发专栏】PHP 连接 MySQL 数据库的方法
【4月更文挑战第30天】本文介绍了 PHP 连接 MySQL 的两种主要方法:mysqli 和 PDO 扩展,包括连接、查询和处理结果的基本步骤。还讨论了连接参数设置、常见问题及解决方法,如连接失败、权限和字符集问题。此外,提到了高级技巧如使用连接池和缓存连接信息以优化性能。最后,通过实际案例分析了在用户登录系统和数据管理中的应用。
|
6天前
|
存储 SQL 缓存
记录如何用php做一个网站访问计数器的方法
创建简单网站访问计数器,可通过存储访问次数的文件或数据库。首先,创建`counter.txt`存储计数,然后在`counter.php`中编写PHP代码以读取、增加并显示计数,使用`flock`锁定文件避免并发问题。网页通过包含`counter.php`展示计数。对于高流量网站,推荐使用数据库确保原子性和并发处理能力,或利用缓存提升性能。注意,实际生产环境可能需更复杂技术防止作弊。
|
6天前
|
PHP
PHP显示报错提示,开启display_errors的方法
PHP显示报错提示,开启display_errors的方法
79 0
|
6天前
|
PHP
【攻防世界】easyphp(PHP代码审计)
【攻防世界】easyphp(PHP代码审计)