作者名:Demo不是emo
主页面链接:主页传送门
创作初心:舞台再大,你不上台,永远是观众,没人会关心你努不努力,摔的痛不痛,他们只会看你最后站在什么位置,然后羡慕或鄙夷
座右铭:不要让时代的悲哀成为你的悲哀
专研方向:网络安全,数据结构每日emo:要做个明亮的人,要有个珍藏的故事,要看遍日落星河,要不虚此行
感觉最近的网络安全学习遇到了瓶颈,因为我是学习的web安全,所以自然最先学习的就是熟悉owtop10漏洞,并且我当前的专业是软件工程,所以各种计算机语言都接触过,但都学的不深,所以网安学习越深入就越感觉代码能力的重要性,所以我决定将当前的重心转到代码审计上,了解漏洞形成原因的同时,增加自己对php语言的理解,加油
目录
一:为什么要进行代码审计
1.新上线系统不够完善
程序员在编辑代码的过程中,开发一个新的系统往往需要很多人共同合作,每个人写程序的习惯不同,编码方式也有不同,很有可能存在不规范的地方。
另外,新上线的系统对于互联网的环境需要一段时间进行充分适应,在上线初期,因为各种条件还不够成熟,系统的代码也还不够完善,在系统上线之前,非常有必要进行代码审计工作。
2.新上线系统可能存在安全隐患
现如今,黑客的攻击防不胜防,一旦存在bug,很快会被黑客攻击,对于企业和公司来说影响非常大。
通过专业的代码审计,能够帮助发现企业的新系统检查代码中的逻辑错误和系统的缺陷,而且还可以通过代码审计可以对系统代码中存在的安全缺陷进行充分挖掘。
3.提供代码修改措施和建议
通过分析源代码,综合各方面的测试技术和审核方法,可以分析新系统存在的各种缺陷,并且还能寻找到各种问题背后的原因,最终以科学的审计报告提出新系统进一步修改的措施和针对性建议。
程序员可以依据审计报告进行有效修改,以确保上线后能够流畅运行。
二: 代码审计工具搭建
想不到把,代码审计居然还有工具,我最开始也不知道,我还以为需要一行一行看代码呢(现在想着好蠢)
但也有同学要问了,有工具了是不是就不需要人工了,那你就想错了,目前的程序员进行代码审计,都是工具扫描+人工验证的方式进行,工具扫描就存在一个准确性问题,所以还是需要人工来进行验证的
这里给大家要介绍三个工具,分别是phpstudy,rips和seay源码审计系统,我会给大家逐一介绍并带着大家安装
1.phpstudy
该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,一次性安装,无须配置即可使用,是非常方便、好用的PHP调试环境,该程序不仅包括PHP调试环境,还包括了开发工具、开发手册等。
这里我们下载phpstudy主要是为了搭建php代码运行环境,方便后面搭建cms系统供我们进行代码审计
[1].下载
官网地址:Windows版phpstudy下载 - 小皮面板(phpstudy) (xp.cn)
可以看到phpstudy推荐了两个版本的phpstudy供我们下载,这里的8.1版本比较新,2018版本的比较稳定和兼容,所以这里我就拿2018版本的给大家讲解了(下载哪个都行,推荐2018版本)
下载好解压之后自己指定路径安装,无脑下一步就可以了
[2].使用
因为phpstudy一次性安装,无须配置即可使用,所以他的使用方式也很方便,首先双击phpstudy打开,打开后页面如下
这时点击启动,等左边的apache和mysql的标志都变绿后即为开启成功,如下
可以看到两个标志都变绿了,说明开启成功,再验证一下,此时再打开浏览器,访问127.0.0.1这个网址,出现hello world这个页面,就说明确实没问题了
2.rips
RIPS是一个用 PHP 编写的源代码分析工具,它使用了静态分析技术,能够自动化地挖掘 PHP 源代码潜在的安全漏洞。渗透测试人员可以直接容易的审阅分析结果,而不用审阅整个程序代码。由于静态源代码分析的限制,漏洞是否真正存在,仍然需要代码审阅者确认。RIPS 能够检测 XSS, SQL 注入, 文件泄露, Header Injection 漏洞等。
[1].下载
这个工具比较老了,但仍然比较好用,但是它是完全英文的页面,对部分小伙伴就不是很友好(比如我哈哈),这里给大家提供两个下载链接,一个是官方版本的,一个是汉化版本的
官方地址:GitHub - ripsscanner/rips: RIPS - A static source code analyser for vulnerabilities in PHP scripts
汉化版本地址:https://github.com/J0o1ey/rips-Chinese
下载之后解压,直接放到phpstudy的根目录即可
php根目录的查询方法:
路径:你的phpstudy所在目录\phpstudy\PHPTutorial\WWW
入口:打开phpstudy,其他选项菜单-网站根目录
[2].使用
打开你的phpstudy并开启服务,浏览器访问127.0.01/你自己解压后保存的文件名 ,访问页面如下就说明没有问题
此时将要扫描的php文件所在的目录路径复制下来放到源码的绝对路径这一栏,可以指定漏洞类型和扫描等级,点击扫描即可,下面给大家演示一下
[3].演示
现在我有一个php文件需要进行代码审计,如下
所以就复制php文件所在目录的路径——D:\phpStudy\PHPTutorial\WWW\test ,到指定位置,扫描级别选择用户指定的,漏洞类型当然是选择全部了,点击扫描,结果如下
可以看到成功扫描出了两个漏洞,分别是sql注入和文件操作, 左边的四个选项分别是漏洞位置,漏洞展开,漏洞帮助,漏洞poc,体验感拉爆直接,当然他也有缺点,就是有些漏洞检测不到,检测的方式比较死板,所以广泛性不强,简单来说就是宁放过,不杀错。
3. seay源码审计系统
[1].下载
这个软件的下载即更简单了,下载,解压,安装即可
下载地址:GitHub - f1tz/cnseay: Seay源代码审计系统
[2].使用
安装了打开后就是如下的界面
点击左上角的新建项目,选择要审计的文件所在的目录,点击自动审计即可
[3].演示
老样子还是之前那个文件,我们点击新建项目,找到那个php文件所在的文件夹并确定,点击上方的自动审计,点击开始即可,如下
可以看到这里也扫出了漏洞,但是比rips工具少了一个,但其实这个工具是纯静态分析,所以它的广泛性很强,并且误报率也高,可以总结为宁杀错,不放过。
三:章末小结
基于两个工具的优缺点,所以很多人进行审计工作时都会两个工具搭配使用,这样效果会更好,到这里就算代码审计的准备工作已经做好了,后续会不断更新代码审计技巧和案例,希望能对大家有所帮助,最后,感谢大家的阅读,respect!