目录
- 在QQ群里下载Fortify的压缩包并解压。
- 进入Fortify的bin目录下,双击运行auditworkbench.cmd脚本。
- 打开bin目录下的scapostinstall.cmd脚本文件,实现汉化。
- 检查是否汉化,并且更新规则
- 打开后先新建项目,并打开所需要扫描代码的文件夹,我选择扫描DVWA靶场的代码,因为DVWA是php语言的代码,所以我们直接打开文件源码,直接进行扫描。
- 在扫描代码之前,我们需要修改一下导出fpr文件的路径。
- 配置完成后,我们直接点击scan,进行扫描,需要1-2分钟。
- 这是扫描完成后的界面。
- 颜色块的不同,代表漏洞的风险等级不同。红色代表高危漏洞,等级为critical必须要解决的漏洞,橙色代表等级为high的高级漏洞,淡橙色代表等级为medium的中等漏洞,黄色代表low低级漏洞
- 左侧显示了各种漏洞类型,如SQL注入,文件包含,文件上传等。
2.2.1 sql注入
因为输入的id没有进行任何过滤,所以就会出现SQL注入的问题。
2.2.2 命令执行
- 攻击者能够篡改、执行、程序的命令,篡改命令的执行环境。
- details为我们提供了详细的例子,可以参考学习。
2.2.3 文件包含
如果允许未验证的用户输入控制动态包含在 PHP 中的文件,会导致恶意代码的执行。
-
- Fortify扫描Java项目
- 使用Fortify扫描自己在学习时所写的项目。
- 打开Fortify,选择扫描Java项目,并且打开Java项目的源代码。
- 选择JDK的版本,确定扫描。
2.4.1 SQL注入
使用Mybatis框架时,应该使用#{}实现预编译,如果使用${},则可能出现SQL注入问题。
2.4.2 信息泄露
将明文密码存储到配置文件,可能会危及系统安全。
- Java系列代码审计
- 在Github上下载靶场
- 安装代码审计工具,我选择在线安装,登录后,创建项目。
- 下载Agent,并将Agent和secexample放在同一个路径下。
- 输入命令打开网站,java -javaagent:./agent.jar -Dproject.name=test -jar secexample-1.0.jar
- 这是Agent的数量+1
- 访问120.0.1/home,就可以实现漏洞的测试。
- 测试命令注入漏洞
- 还可以显示项目漏洞情况等。
本次实验我在Windos10虚拟机上安装了Fortify代码审计工具,使用Fortify扫描在实验中,我扫描了DVWA靶场。我能够对DVWA应用程序进行自动扫描,发现其中的漏洞。Fortify能够帮助发现各种类型的漏洞,如SQL注入、命令执行和文件包含等。这使我更加意识到应用程序安全的重要性,因为这些漏洞可能会被攻击者利用,造成严重的后果,运用洞态在线测试了一些漏洞,我也扫描了自己在学习中所写的Java项目,也发现了自己所写的代码也有一定的漏洞,在以后的开发中,要避免出现这些问题。