审计方法与步骤

1. 环境搭建

1. PHP代码审计

1.1 环境

Package Control(管理其他插件的插件)

CTags(为函数建立索引的插件)

PHPTidy(php代码整理的插件)

ConvertToUTF8(非UTF-8编码转换为UTF-8插件)

vMysqlMonitoring(一款mysql语句直接日志查询记录工具)

2. 把握大局

  • 入口文件

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

  • 配置文件

一般类似config.php等文件,保存一些数据库相关信息,程序的一些信息。先看看数据库编码,如果是gbk则可能存在宽字节注入。如果变量的值用双引号,则可能存在双引号解析代码执行的问题(php中双引号可以直接解析变量,而单引号不会)

  • 过滤功能

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

admin:后台管理目录
install:网站的安装目录,其中的install.sql为数据库的结构信息
sys:这个目录里面一般存放着配置信息文件和公共函数库,分别为config.phplib.php
user:这里面记录着用户的一些操作,如用户注册等

3. 审计方法

  • 通读全文法
  • 敏感函数参数回溯法

根据敏感函数,逆向追踪参数传递的过程
这个方法是最高效,最厂用的方法
大多数漏洞的产生是因为函数的使用不当产生的,只要找到这样的一些使用不当的函数,就可以快速挖掘想要的漏洞

  • 定向功能分析法(*)

该方法主要是根据程序的业务逻辑来做审计的
首先是用浏览器逐个访问浏览,看看这套程序有哪些功能,根据相关功能大概推测存在哪些功能

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

  1. 程序初始安装
  2. 站点信息泄露
  3. 文件上传
  4. 文件管理
  5. 登录认证
  6. 数据库备份恢复
  7. 找回密码
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,554评论 19 139
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,303评论 2 89
  • 在与领导的关系博弈中,自己永远处于弱势。不管是分管领导、直接领导、分管大领导,在工作中,即便是领导出的错,最终怪罪...
    当道阅读 342评论 0 0
  • 这大概是我这一周来,吃的最正常的一顿了。 一上来分量正好,不会过多让你看着就吃不下,也不会太少让你觉得店家太小气。...
    Amywang阅读 334评论 0 0
  • 我喜欢过一个对我们彼此来说都特别特别的人,但是我们分开了。原因是,我喜欢他,但他不喜欢我。原因是,我最终到了大连,...
    TA_e540阅读 513评论 0 1

友情链接更多精彩内容