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

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

前语

本文是 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]  黑客接单网

相关文章

广州正规黑客接单_找黑客解封微信号安全吗

经营厅号段计算是高等学府邻近最为便利的获取手机号的办法,由于一般每一年学生入学都会敞开几个新的号段,亦或是重启一些退网时刻比较久的号段。 总归,这些号段一般都是该校学生,针对性强,并且只需求在尾号上+...

专业手机接单黑客联系方式_找专业黑客黑掉手机

case 1: {11月5、资质证书岂能如此挂靠(一) 文档投进的办法多样化专业手机接单黑客联系方式,找专业黑客黑掉手机 依据慢雾安全团队的持续剖析,本次的进犯帐号为 fortherest12,经过...

黑客接单qiushittk_找黑客窃取电脑资料

5. 修正 Peach 的版别无在曩昔的几年里,当局现已开端在冲击暗网中的网络违法活动了,其间包含优待儿童、违禁药品买卖、兵器出售、数据出售、勒索软件和黑客论坛等等。 近年来,大型网络违法商场逐步式微...

一分钟盗微信号方法,中国黑客联盟怎么联系,武汉黑客组织专门找小学生

</form>360移动安全团队剖析发现,道有道广告SDK使用静态和动态相结合的手法,与杀软特征进行持续性的对立,然后逃避杀软的查杀。 翻开 [我国菜刀] 衔接一句话木马;CVE-2019...

华中帝国黑客接单_黑客QQ在哪里找

在本年,咱们还看到了几个“老朋友”,从熟睡中醒来,从头呈现在咱们的视界之中。 在这一章,咱们首要评论一些闻名的歹意安排,因为不明原因(或许是缺少相应的监测)近年来没有发现有太大的动作,但近期又从头呈现...

安全黑客接单_强制加微信好友

“猫池”说白了便是一个能够插许多许多张手机卡的“假手机”,经过“猫池”对应的软件,能够一起运用这些手机卡进行打扰短信的发送和打扰电话的拨打。 sudo add-apt-repository ppa:u...