***审计方法与步骤***
–>审计前的准备:
1.获取源码
–>大多的源码可以在官网下载源码包.
2.安装网站
–>在搭建网站,这样可以时刻跟踪各种动态变化.
审计源码不是拿到了源码就马上去看,首先我们需要去对网站有个了解,去了解它的结构.
1.先去看源码的文件夹.看它的目录,目录里博包含了什么文件.
2.开始分析这些文件,大致了解它包含了什么功能
3.然后找到入口的文件(indx.php,admin.php),通过文件去了解程序的架构,运行的流程等.
4.看配置文件(config.php),可以获得一些数据库的相关信息.
5.看公共函数文件和安全过滤文件,了解用户输入的数据,哪些被过滤,哪些没有过滤,怎么过滤的,在哪给地方过滤了等等.
网站的结构
–>
首先打开index.php:
–>首先判断是否存在"module":
存在就会显示一些基本的信息.
然后去看config.php文件,然后开始判断是否存在"lock"文件:
如果不存在就跳过就跳转到安装文件:
然后"lib.php"文件包含了公共函数:
再往下就是数据库的信息:
然后看"lib.php"文件:
–>判断是否开启"gpc":
如果没有开启gpc,就需要自己实现gpc功能:
往下看可以看见sqlwaf这个函数:可以过滤一些敏感的字符串,防止注入.
继续往下看:看见"is_pic"这个函数是上传图片.
审计的方法:
通常三种常用的方法:
1.通读全文法.
2.敏感函数参数回溯法(shell_exec).
3.定向功能分析法(安装问题).
1.通读全文法是最麻烦的但也是全面的审计方法,它可以了解整个应用的业务逻辑,挖掘更多有价值的漏洞.可以积累丰富的经验.
2.敏感函数参数回溯法,这个方法是最高效,最常用的方法.根据敏感函数,逆向追踪参数传递的过程.这个方法可以让你多去了解这些函数,积累经验.
3.定向功能分析法,这个方法是根据程序的业务逻辑,业务功能来推测它会出现那些漏洞.
{
常见功能漏洞:
1.程序初始安装
2.站点信息泄露
3.文件上传.
4.文件管理.
5.登录认证.
6.数据库备份恢复
7.找回密码
8.验证码
}
审计代码需要多实践,多练,多积累经验,后便需要自己的逻辑!