搜索
首页后端开发php教程商业级别fortify白盒神器介绍与使用分析

1.什么是fortify它又能干些什么?

答:fottify全名叫:Fortify SCA ,是HP的产品 ,是一个静态的、白盒的软件源代码安全测试工具。它通过内置的五大主要分析引擎:数据流、语义、结构、控制流、配置流等对应用软件的源代码进行静态的分析,分析的过程中与它特有的软件安全漏洞规则集进行全面地匹配、查找,从而将源代码中存在的安全漏洞扫描出来,并给予整理报告。

2.它支持扫描多少种语言?

答:FortifySCA支持的21语言,分别是:

1. asp.net     2. VB.Net     3. c#.Net     4. ASP     5. VBscript     6. VS6     7.java     8.JSP     9.javascript     10. HTML     11. XML     12. C/C++     13.PHP     14.T-SQL     15.PL/SQL     16. Action script      17. Object-C (iphone-2012/5)     18. ColdFusion5.0 - 选购     19. python -选购     20. COBOL - 选购     21.SAP-ABAP -选购

3.他是免费的吗?

答:不是,是收费的。当然网上也没有破解的。貌似他一个月收费10万。

4.如何使用?

安装fortify之后,打开

界面:

选择高级扫描

他问要不要更新? 我就选择No,因为这是我私人的, 我是在2015年7月份购买的试用期为1个月。 怕更新了就用不了了。如果你购买了可以选择YES。

选择之后出现如下界面

浏览意思是:扫描之后保存的结果保存在哪个路径。

然后点击下一步。

参数说明:

enable clean :把上一次的扫描结果清楚,除非换一个build ID,不然中间文件可能对下一次扫描产生影响。enable translation: 转换,把源码代码转换成nst文件-64: 是扫描64位的模式,sca默认扫描是32位模式。-Xmx4000m:4000M大概是4G,制定内存数-Xmx4G :也可以用G定义这个参数建议加-encoding: 定制编码,UTF-8比较全,工具解析代码的时候指定字符集转换的比较好,建议加,如果中文注释不加会是乱码。-diable-source-:rendering:不加载与漏洞无关的代码到审计平台上,不建议加,这样代码显示不全。

然后点击下一步

它说:这是一个J2EE Web应用

选择No    (因为你扫的是PHP)

然后scan(开始扫描)

Always run in background 意思:总是在后台运行

run in background 意思:后台运行

cancel 意思 : 取消

Details 意思:细节

扫完之后:

none 代表其他 1个

A1 注入 7个 

A3 xss 37个

A4 不安全的直接对象引用 35个

A6 敏感数据暴露 4个

A10 未验证的重定向和转发 2个

如果发现是英文的,想改成如下方法中文:

以下是官网提供的分析图:

分析漏洞:

none漏洞:

这是一个可变变量,按照中国人说法简称:“变量覆盖”。

讲一下这个漏洞的原理:

可变变量

$first ="hello";$hello ="world";echo $first." ".$$first;

结果是 hello world

$$first就是$hello,因为$first的值是hello

———————————但是在foreach 就不一样了—————————————————–

<?php$a = 'sss';foreach ($_GET as $key => $value) {     //如果在foreach那就不一样了     echo $$key;  //将$$区分开 然后$key 等于键 然后开始合并 比如打开http://www.com.com/demo.php?a=值 就变成了$a  因为$key的键是a 所以就变成了$a     $$key = $value;//$a = 值  替换变量    }echo '<hr '>';echo $a;?>

A1 注入漏洞:

发现$c变量是由客户端进行GET请求控制的。

safe_replace函数过滤如下字符:

function safe_replace($string) {$string = str_replace('%20','',$string);$string = str_replace('%27','',$string);$string = str_replace('%2527','',$string);$string = str_replace('*','',$string);$string = str_replace('"','"',$string);$string = str_replace("'",'',$string);$string = str_replace('"','',$string);$string = str_replace(';','',$string);$string = str_replace('<','<',$string);$string = str_replace('>','>',$string);$string = str_replace("{",'',$string);$string = str_replace('}','',$string);$string = str_replace('//','',$string);return $string;}

include $c.".php";  但是后面有个.php是拼接的。

但是如果 php版本小于5.3.40 可以采用空字节也就是%00的二进制视作字符串的结束,按照其他说法的话也就是截断。。。。。

A3 xss 漏洞

$field_sql="update ".DB_PRE."member set {$field_sql} where userid={$last_id}";$query=$this->mysql->query($field_sql);

写入数据库的时候没有任何限制或者输出的时候没有做任何的过滤就直接输出导致造成了XSS。(我就不一一解释了)

A4 不安全的直接对象引用漏洞

文件上传次数未做策略,可导致攻击。

A6 敏感数据暴露漏洞:

A10 未验证的重定向和转发漏洞:

这里我就不去定位看谁使用这个函数了,懂点PHP的人相信都懂。。

整个过程基本已经结束了,但是有点我想提醒大家,在设置内存的时候如果你不设置内存他会自动帮你设置,比如你的电脑内存是8G 他就自动设置为8G 然后就会占用你8G内存,然后搞得你电脑卡卡卡卡卡卡卡的。下次扫之前记得要设置你的内存,如果你电脑是8G内存 设置7G就好了,还剩下1G就可以玩4399小小游戏了。 ~_~

* 投稿 作者:心东, 转自须注明来自FreeBuf黑客与极客(FreeBuf.COM)

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
您什么时候使用特质与PHP中的抽象类或接口?您什么时候使用特质与PHP中的抽象类或接口?Apr 10, 2025 am 09:39 AM

在PHP中,trait适用于需要方法复用但不适合使用继承的情况。1)trait允许在类中复用方法,避免多重继承复杂性。2)使用trait时需注意方法冲突,可通过insteadof和as关键字解决。3)应避免过度使用trait,保持其单一职责,以优化性能和提高代码可维护性。

什么是依赖性注入容器(DIC),为什么在PHP中使用一个?什么是依赖性注入容器(DIC),为什么在PHP中使用一个?Apr 10, 2025 am 09:38 AM

依赖注入容器(DIC)是一种管理和提供对象依赖关系的工具,用于PHP项目中。DIC的主要好处包括:1.解耦,使组件独立,代码易维护和测试;2.灵活性,易替换或修改依赖关系;3.可测试性,方便注入mock对象进行单元测试。

与常规PHP阵列相比,解释SPL SplfixedArray及其性能特征。与常规PHP阵列相比,解释SPL SplfixedArray及其性能特征。Apr 10, 2025 am 09:37 AM

SplFixedArray在PHP中是一种固定大小的数组,适用于需要高性能和低内存使用量的场景。1)它在创建时需指定大小,避免动态调整带来的开销。2)基于C语言数组,直接操作内存,访问速度快。3)适合大规模数据处理和内存敏感环境,但需谨慎使用,因其大小固定。

PHP如何安全地上载文件?PHP如何安全地上载文件?Apr 10, 2025 am 09:37 AM

PHP通过$\_FILES变量处理文件上传,确保安全性的方法包括:1.检查上传错误,2.验证文件类型和大小,3.防止文件覆盖,4.移动文件到永久存储位置。

什么是无效的合并操作员(??)和无效分配运算符(?? =)?什么是无效的合并操作员(??)和无效分配运算符(?? =)?Apr 10, 2025 am 09:33 AM

JavaScript中处理空值可以使用NullCoalescingOperator(??)和NullCoalescingAssignmentOperator(??=)。1.??返回第一个非null或非undefined的操作数。2.??=将变量赋值为右操作数的值,但前提是该变量为null或undefined。这些操作符简化了代码逻辑,提高了可读性和性能。

什么是内容安全策略(CSP)标头,为什么重要?什么是内容安全策略(CSP)标头,为什么重要?Apr 09, 2025 am 12:10 AM

CSP重要因为它能防范XSS攻击和限制资源加载,提升网站安全性。1.CSP是HTTP响应头的一部分,通过严格策略限制恶意行为。2.基本用法是只允许从同源加载资源。3.高级用法可设置更细粒度的策略,如允许特定域名加载脚本和样式。4.使用Content-Security-Policy-Report-Only头部可调试和优化CSP策略。

什么是HTTP请求方法(获取,发布,放置,删除等),何时应该使用?什么是HTTP请求方法(获取,发布,放置,删除等),何时应该使用?Apr 09, 2025 am 12:09 AM

HTTP请求方法包括GET、POST、PUT和DELETE,分别用于获取、提交、更新和删除资源。1.GET方法用于获取资源,适用于读取操作。2.POST方法用于提交数据,常用于创建新资源。3.PUT方法用于更新资源,适用于完整更新。4.DELETE方法用于删除资源,适用于删除操作。

什么是HTTP,为什么对Web应用程序至关重要?什么是HTTP,为什么对Web应用程序至关重要?Apr 09, 2025 am 12:08 AM

HTTPS是一种在HTTP基础上增加安全层的协议,主要通过加密数据保护用户隐私和数据安全。其工作原理包括TLS握手、证书验证和加密通信。实现HTTPS时需注意证书管理、性能影响和混合内容问题。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。