当前位置:首页 > 黑客业务 > 正文内容

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

访客4年前 (2021-04-15)黑客业务891

前语

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

扫描二维码推送至手机访问。

版权声明:本文由黑客接单发布,如需转载请注明出处。

本文链接:https://therlest.com/106718.html

分享给朋友:

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

猪肉怎么选?颜色有区别吗?今天做饭的时候发现上次买的猪肉颜色跟这

猪肉怎么选?颜色有区别吗?今天做饭的时候发现上次买的猪肉颜色跟这 买猪肉时,根据肉的颜色、外观、气味等可以判断出肉的质量是好还是坏。优质的猪肉,脂肪白而硬,且带有香味。肉的外面往往有一层稍带干燥的膜,肉质紧密,富有弹性,手指压后凹陷处立即复原。 次鲜肉肉色较鲜肉暗,缺乏光泽,脂肪呈灰白色;表面带...

福田轻卡 - 福田官网

市场保有量也是最多的一种品牌卡车.银河路东,山东福田,尤其是维修和保养方面,廊坊。 我是今年2月份买的福田奥铃4点2米货车,请问这种车要多少钱呀,跨所有制的国有控股上市公司。斗,103,经销商报价:7点98万元马力:116,最大功率为76KW.7-10万的都有. 长度:3点3米排量:2点2L货箱,有...

蚯蚓的市场价格 - 2020年蚯蚓收购价格

今年2020年这个价格还算是比较合理,市场价格较为平稳,当地蚯蚓批发价250元/万条,今日浙江海宁地区鲜蚯蚓批发价为17,最高可卖3元/两,每次都-是老家亳州的来回辗转的跑辛苦.货源充足,现在贩子登门收购18-222020元/斤不等。 目前价格多少钱一斤目前价格在8元一斤,是一种营养价值很高的无脊椎...

中铁快运寄件电话 - 中铁快运官方网站

尽快前去领取吧,查询可以来我们,包裹已经到石家庄了,告诉对方所寄何物。广木头箱子费用在及时上百不等。 .网站“中铁快运单号查询系统”留言查询,开始不知道。 中铁快运的,且电话通知无人接听,但是价格也很贵。在哪里寄,中铁快运,电话多少中铁。 打了个电话,K54,徐州中铁快运,你好,木头箱子中铁能提供。...

存储过程oracle(oracle财务系统)

推荐教程:甲骨文教程 本文主要介绍甲骨文中的数据转换。 1.日期转换成字符串(以2016年10月20日为例) 选择to_char(sysdate,& # 39;yyyy-mm-DD hh24:mi:ss & # 39;)strDateTime从dual-获取年-月-日:分:秒-...

intense靶场-获取User权限

出品|MS08067实验室(www.ms08067.com) 本文作者:jokelove(Ms08067内网安全小组成员) Intense是HTB中一个难度中上的靶场,需要参与者具备下述能力: 1. Python源码审计 2. SQL注入原理 3. SNMP远程命令执行 4. 栈溢出...

评论列表

澄萌雾敛
3年前 (2022-07-03)

文件操作的参数,就有或许越权拜访正常情况下无法抵达的体系资源。问题剖析 PathBasedAccessControl.java129源代码审计发现 PathBasedAccessControl.java 第 129 行 File() 办法。进犯者有或许操控文件途径越权拜访或许修正

慵吋邶谌
3年前 (2022-07-03)

犯者有或许操控文件途径越权拜访或许修正被维护的其他文件。该文件内容被作为页面元素显现。图 1. 问题代码段在已布置的 WebGoat 工程,发动出产环境。模仿进犯者登录,在左

痴者寻倌
3年前 (2022-07-03)

og 文件中新的一行中写入虚伪信息“Succeeded for username: admin”。进犯的小窍门在换行符号n,也便是转码后的 %0d%0a, 换行使 Log 中的诈骗信息看起来更实在。WebGoat 的这个示例项目仅仅描述

馥妴辞忧
3年前 (2022-07-03)

前语本文是 JavaWeb 工程源代码安全审计实战的第 3 部分,根据 WebGoat 工程,解说四种高危缝隙:文件途径操作、体系日志诈骗、线程安全和资源未开释问题。要点评论的是源码审计思路和攻防演练实战。 Web 运用要挟之文件途径操作技能原理当进犯者能够指定文件名、文件途径等文件操作的参数,就有

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。