「代码审计01」几种常见的漏洞种类以及代码审计工具

前言

代码审计是在经过黑盒测试完毕,也就是检查应用的基本功能是否符合产品业务需求下进行的。需要有一定的编码基础以及对漏洞形成原理的基本认知,通过工具或者经验检测中代码中可能出现的bug。在不同平台(windows,linux),不同PHP版本下测试,比如PHP的很多新版本会对一些指令废弃删除,但是在旧版本中却能使用,而该版本下的指令即有可能会被人发现漏洞。

PHP核心配置

PHP配置对于大多数人都是通过php.ini设置,但其实是有配置范围的,比如一些指令配置只能通过php.ini配置,也有一些可以在PHP脚本中设置,通过ini_set()函数,详细可以查询PHP_INI.*的列表和ini_set使用方法。

代码审计工具

1.seay源代码审计工具

「代码审计01」几种常见的漏洞种类以及代码审计工具

2. HackBar漏洞验证辅助(火狐浏览器扩展)

「代码审计01」几种常见的漏洞种类以及代码审计工具

代码审计思路

1. 查看敏感函数追踪参数

2. 全部通读一遍源码了解逻辑

3. 按功能点审计追踪

常见的几种漏洞类型

1. SQL注入

2. XSS漏洞(跨站脚本攻击)

3. CSRF漏洞(跨站请求伪造)

4. 文件操作漏洞

5. 代码执行漏洞

6. 命令执行漏洞

7. 变量覆盖漏洞

8. 业务逻辑漏洞

9. 越权与提权

10. 二次注入

11. ……等等

「代码审计01」几种常见的漏洞种类以及代码审计工具

小结&待续

由于在代码审计中会涉及到很多知识点,所以这里只先总结一个引文。了解几种常见的漏洞类型,而这些漏洞也都有特定的例子可以挖掘,需要在工作或学习中不断积累分析,并且找到最好的防范方案解决。比如程序中需要中需要注意的就是接收与输出。接收是获取用户提交过来的数据或操作,先人经验说:”不要相信用户的任何操作”。所以用户可能是一个脚本,自然就存在XSS,爆破,CSRF,操作越权等等的风险。而输入可能是由我们接收完用户输入直接反射性输入或把接收数据存储后再根据业务逻辑存储型输出。所以每一个函数或方法编写时对参数的校验过滤以及返回值的转换处理等等都必不可少。而应用的功能点比如评论,登陆注册,找回密码,获取验证码,上传文件图片,提现抽奖,积分等都最会是别人盯上找漏洞的地方,除了通过限制次数,IP防止暴力登陆往往还不够。单说获取IP地址,HTTP_CLIENT_IP,HTTP_X_FORWARDED_FOR,REMOTE_ADDR都可以获取,而前两者可以使用http header伪造,这时候对于一个IP的真实性需要比较一下这三种获取方式的不同点再来实现功能。还有验证码,有图片验证,滑动验证,语音验证,短信验证等,但网上也存在图片识别,打码平台相应的工具。只能说防范手段在升级,漏洞也在不断升级,代码审计必不可少。


分享到:


相關文章: