Java Web 工程源代码安全审计实战,第 3 部分: 文件途径操作

访客5年前关于黑客接单890

前语

本文是 JavaWeb 工程源代码安全审计实战的第 3 部分,根据 WebGoat 工程,解说四种高危缝隙:文件途径操作、体系日志诈骗、线程安全和资源未开释问题。要点评论的是源码审计思路和攻防演练实战。

 

Web 运用要挟之文件途径操作

技能原理

当进犯者能够指定文件名、文件途径等文件操作的参数,就有或许越权拜访正常情况下无法抵达的体系资源。

问题剖析 PathBasedAccessControl.java129

源代码审计发现 PathBasedAccessControl.java 第 129 行 File() 办法。进犯者有或许操控文件途径越权拜访或许修正被维护的其他文件。该文件内容被作为页面元素显现。

图 1. 问题代码段

在已布置的 WebGoat 工程,发动出产环境。模仿进犯者登录,在左边导航目录下点选“Access Control Flaws - Bypass a Path Based Access Control Scheme”, 任选一个 combox 中的 xx.html 文件,点击“View Profile”提交。

进犯场景

图 2. 文件途径操作进犯场景

处理方案

快速修正

处理 WebGoat 工程的示例的文件途径操作问题,能够在 PathBasedAccessControl.java 第 97 行办法,增加对文件途径的校验。代码片段如下:

图 3. 整改文件途径操作的代码

布置整改后的代码,从头运转进犯场景,不行再现进犯。

触类旁通

一般的,为避免文件途径操作问题,开发者首先要运用正确的体系函数,其次能够自定义根据需求对文件操作参数进行过滤, 还能够运用服务器安全拜访结构。供给以下五种思路:

1. 运用标准途径 getCanonicalPath()

进犯者能够用包括 ../序列的参数来指定坐落特定目录之外的文件,然后违背程序安全战略,引发途径遍历缝隙,进犯者或许向恣意目录上传文件。

Java 言语对途径的操作有 getAbsolutePath() 获取肯定途径和 getCannonicalPath() 获取标准途径。getCannonicalPath() 首先将途径名转换成肯定途径名,这与调用 getAbsolutePath() 办法的作用相同。然后用与体系相关的 *** 将它映射到其专一途径名。这一般涉及到从途径名中移除剩余的称号(比方 "." 和 "..")、剖析符号衔接(关于 UNIX 渠道),以及将驱动器名转换成标准大小写 *** (关于 Microsoft Windows 渠道)。所以应该尽量运用标准途径,躲避进犯者或许运用的剩余的剖析符号。

2. 开发者为运用到的文件操作参数进行输入验证,过滤字符(如“.”和“..”)

3. 针对运用场景,约束文件类型。比方运用的图片文件只能是后缀.png, .jpg 而不或许是.bat, .sh。 主张加强对文件的判别,要经过文件头而不仅仅是文件后缀来判别。

4.Java 安全管理器 permission Java.io.FilePermission

5. 服务器安全装备战略文件。能将所能读取的文件限定在特定的目录下。怎么装备安全战略文件,和详细运用的服务器类型相关

 

回页首

Web 运用要挟之体系日志 (Log) 诈骗和隐私走漏

当进犯者有或许写 Log 信息的时分,就有或许结构虚伪信息,利诱 Log 读者,利诱体系运维调试人员调试体系故障。Log 诈骗能够帮忙进犯者展开大型可继续进犯 (APT)。

源代码审计发现 HammerHead.java 第 271 行记载未经校验的 message,代码片段如下:

图 4. 问题代码段

在已布置的 WebGoat 工程,发动出产环境。

模仿进犯者登录,在左边导航目录下点选“Injection Flaws - Log Spoofing”, 在文本框输入“Smith%0d%0aLogin Succeeded for username: admin”, 提交后假定服务器 Log 这段文本,将会在 Log 文件中新的一行中写入虚伪信息“Succeeded for username: admin”。进犯的小窍门在换行符号n,也便是转码后的 %0d%0a, 换行使 Log 中的诈骗信息看起来更实在。

WebGoat 的这个示例项目仅仅描述性展现,没有真实代码履行写服务器日志。

处理方案

1. 换行符”n”。Log 诈骗最要害的元素便是换行符,假如 Log 信息用黑名单过滤,”n”必定要出现在黑名单中。假如 Log 信息用白名单过滤,”n”必定不能出现在白名单中

2. 开发完结,在出产环境上线之前,要悉数删去 System.out()

3. 分级 Log 开关。软件开发版别和发布版别,翻开不同等级的 Log 开关,明晰记载的一起将损害降到最小规模

4. 操控 Log 内容。不以任何 *** 记载用户的灵敏信息,哪怕是加密过的

5. 不记载隐私信息。当用户隐私信息被写到 Log 中时,就造成了隐私走漏。尤其是暗码信息,即使是加密之后的暗码信息,也不该该被存储到 Log 中。因为任何加密算法都有被破解的或许

WebGoat 工程演示了几十个 Web 问题事例,比方上传并履行歹意文件等等。本文篇幅有限,不一一列举其他事例。

以上议论了 Web 高危缝隙的审计。下面叙述几个因为 Java 言语特性,简单引导开发者犯下的编程过错。这些代码缺点使得工程不强健,需求定点审计排查、整改。

 

回页首

[1] [2]  黑客接单网

相关文章

网络安全,找黑客查别人,黑客是如何找漏洞

有针对性的运用:这个JavaScript歹意代码宗族以及 iframe注入针对的是特别装备条件,地理位置,以及IP散布状况。 这种歹意脚本和服务器在进犯IE阅读器用户的时分运用了多种不同的侵略技能,并...

我妈每天赌博,我上课不管我,她回来,我说了他几

这样,从打电话到与用户流通沟通,均不需求人工参加的自动化“营销渠道”的根底部分就现已建立完结,能够“开门经营”了。 其实,咱们日常打电话也是这种的对话形式,剖析对方的志愿进行后续的评论。 反映在上面的...

PHP网站常见安全漏洞及防护办法

  现在,依据PHP的网站开发现已成为现在网站开发的干流,本文笔者要点从PHP网站进犯与安全防备方面进行探求,旨在削减网站缝隙,期望对我们有所协助! 放心 2019/07/09 一、常见PHP网站...

推荐五款具有超级隐私保护性的匿名浏览器-黑客接单平台

毫无疑问,在现在任何品种的设备上,装置和运用得最多的便是阅读器了,但并非一切的阅读器都能够帮你保密。因而,关于那些十分重视匿名性的同学们来说,暗网阅读器肯定是他们重视的焦点。 一般的阅读器都有Cook...

计算机语言入门,求银行卡黑客高手联系方式,找黑客女友

而这个参数强壮的国产射频芯片激起了咱们的爱好,经过一些发掘,发现这个芯片本来山寨自NORDIC的nRF24L01+,没错,便是这个声称性价比之王的nRF24L01+ 2.4GHz射频芯片的5.8GHz...

私人黑客接单,怎么找黑客解封微信号,找黑客升级游戏犯法吗

$blogids = array();摩洛哥为最早的据点,体系初始化时刻可追溯到2013年9月19日,但其真实投入使用布置C&C环境为2014年4月,估测进犯者在这段时刻内进行准备工作。 随后...