本文是 JavaWeb 工程源代码安全审计实战的第 3 部分,根据 WebGoat 工程,解说四种高危缝隙:文件途径操作、体系日志诈骗、线程安全和资源未开释问题。要点评论的是源码审计思路和攻防演练实战。
当进犯者能够指定文件名、文件途径等文件操作的参数,就有或许越权拜访正常情况下无法抵达的体系资源。
源代码审计发现 PathBasedAccessControl.java 第 129 行 File() 办法。进犯者有或许操控文件途径越权拜访或许修正被维护的其他文件。该文件内容被作为页面元素显现。
在已布置的 WebGoat 工程,发动出产环境。模仿进犯者登录,在左边导航目录下点选“Access Control Flaws - Bypass a Path Based Access Control Scheme”, 任选一个 combox 中的 xx.html 文件,点击“View Profile”提交。
进犯场景
快速修正
处理 WebGoat 工程的示例的文件途径操作问题,能够在 PathBasedAccessControl.java 第 97 行办法,增加对文件途径的校验。代码片段如下:
布置整改后的代码,从头运转进犯场景,不行再现进犯。
一般的,为避免文件途径操作问题,开发者首先要运用正确的体系函数,其次能够自定义根据需求对文件操作参数进行过滤, 还能够运用服务器安全拜访结构。供给以下五种思路:
1. 运用标准途径 getCanonicalPath()
进犯者能够用包括 ../序列的参数来指定坐落特定目录之外的文件,然后违背程序安全战略,引发途径遍历缝隙,进犯者或许向恣意目录上传文件。
Java 言语对途径的操作有 getAbsolutePath() 获取肯定途径和 getCannonicalPath() 获取标准途径。getCannonicalPath() 首先将途径名转换成肯定途径名,这与调用 getAbsolutePath() 办法的作用相同。然后用与体系相关的 *** 将它映射到其专一途径名。这一般涉及到从途径名中移除剩余的称号(比方 "." 和 "..")、剖析符号衔接(关于 UNIX 渠道),以及将驱动器名转换成标准大小写 *** (关于 Microsoft Windows 渠道)。所以应该尽量运用标准途径,躲避进犯者或许运用的剩余的剖析符号。
2. 开发者为运用到的文件操作参数进行输入验证,过滤字符(如“.”和“..”)
3. 针对运用场景,约束文件类型。比方运用的图片文件只能是后缀.png, .jpg 而不或许是.bat, .sh。 主张加强对文件的判别,要经过文件头而不仅仅是文件后缀来判别。
4.Java 安全管理器 permission Java.io.FilePermission
5. 服务器安全装备战略文件。能将所能读取的文件限定在特定的目录下。怎么装备安全战略文件,和详细运用的服务器类型相关
回页首
当进犯者有或许写 Log 信息的时分,就有或许结构虚伪信息,利诱 Log 读者,利诱体系运维调试人员调试体系故障。Log 诈骗能够帮忙进犯者展开大型可继续进犯 (APT)。
源代码审计发现 HammerHead.java 第 271 行记载未经校验的 message,代码片段如下:
在已布置的 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,经过...
5. 修正 Peach 的版别无在曩昔的几年里,当局现已开端在冲击暗网中的网络违法活动了,其间包含优待儿童、违禁药品买卖、兵器出售、数据出售、勒索软件和黑客论坛等等。 近年来,大型网络违法商场逐步式微...
</form>360移动安全团队剖析发现,道有道广告SDK使用静态和动态相结合的手法,与杀软特征进行持续性的对立,然后逃避杀软的查杀。 翻开 [我国菜刀] 衔接一句话木马;CVE-2019...
在本年,咱们还看到了几个“老朋友”,从熟睡中醒来,从头呈现在咱们的视界之中。 在这一章,咱们首要评论一些闻名的歹意安排,因为不明原因(或许是缺少相应的监测)近年来没有发现有太大的动作,但近期又从头呈现...
“猫池”说白了便是一个能够插许多许多张手机卡的“假手机”,经过“猫池”对应的软件,能够一起运用这些手机卡进行打扰短信的发送和打扰电话的拨打。 sudo add-apt-repository ppa:u...