
安全编码指南是如何演变的
上周我正在研究 Java Spring 中的漏洞,以更新我们的安全编码指南。我正在研究我们平台上现有的挑战,并通过在JSP页面中显示网址参数在XSS上发现了一些挑战。不正确的代码示例看起来与以下内容类似:
<input type="text" name="username" value="${param.username}">
正确的解决方案是完全删除 URL 参数,描述中提到,以正确的方式转义 URL 参数也是安全的。
现在,我的工作是以开发人员清楚的方式制定安全编码指南,并在编写安全代码的同时尽可能减少对他们的限制。在这种情况下,我更愿意让开发人员保留其预期功能,并建议他们通过转义 URL 参数来安全地执行此操作。这样,代码就不再包含 XSS 漏洞了。上面的例子可以这样保护:
<input type="text" name="username" value="${fn:escapeXml(param.username)}">
这是我们几天来的安全编码指南,直到我偶然发现了一个 关于表达式语言注入的 OWASP 页面。本页介绍如何滥用 Spring 表达式语言 (SpEL) 进行注入,从而产生一些严重影响,包括远程代码执行。我有责任弄清楚是否存在符合我们安全编码指南的代码仍然会受到此漏洞影响的情况。因此,我编写了一个快速测试应用程序来评估 SpEL 表达式,并测试了使用和不使用 Xml 转义的输入,看看能否找到一些无法捕捉到的场景。我做到了,有些恶意表达式不包含 XmleScape 捕获的任何字符。我在我们的 github 上发布了工作演示,你可以找到 这里。
当然,我更新了我们的安全编码指南,现在内容是:“不要使用 Spring 表达语言 (SpEL) 显示或评估 URL 参数。”
此问题的总体影响很大,原因如下:-攻击者可以修改和调用应用程序服务器上的功能。-未经授权访问数据和功能,以及账户劫持和远程执行代码。-成功攻击带来的机密性和完整性问题。
https://www.owasp.org/index.php/Expression_Language_Injection
응용 프로그램 보안 연구원 - R&D 엔지니어 - 박사 후보

Secure Code Warrior는 조직이 소프트웨어 개발 생명주기 전반에 걸쳐 코드를 보호하고 사이버 보안을 최우선으로 하는 문화를 조성하도록 지원합니다. 앱 보안 관리자, 개발자, 최고정보보안책임자(CISO) 또는 보안 관련 업무를 수행하는 모든 분들에게, 저희는 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.
데모 예약응용 프로그램 보안 연구원 - R&D 엔지니어 - 박사 후보


上周我正在研究 Java Spring 中的漏洞,以更新我们的安全编码指南。我正在研究我们平台上现有的挑战,并通过在JSP页面中显示网址参数在XSS上发现了一些挑战。不正确的代码示例看起来与以下内容类似:
<input type="text" name="username" value="${param.username}">
正确的解决方案是完全删除 URL 参数,描述中提到,以正确的方式转义 URL 参数也是安全的。
现在,我的工作是以开发人员清楚的方式制定安全编码指南,并在编写安全代码的同时尽可能减少对他们的限制。在这种情况下,我更愿意让开发人员保留其预期功能,并建议他们通过转义 URL 参数来安全地执行此操作。这样,代码就不再包含 XSS 漏洞了。上面的例子可以这样保护:
<input type="text" name="username" value="${fn:escapeXml(param.username)}">
这是我们几天来的安全编码指南,直到我偶然发现了一个 关于表达式语言注入的 OWASP 页面。本页介绍如何滥用 Spring 表达式语言 (SpEL) 进行注入,从而产生一些严重影响,包括远程代码执行。我有责任弄清楚是否存在符合我们安全编码指南的代码仍然会受到此漏洞影响的情况。因此,我编写了一个快速测试应用程序来评估 SpEL 表达式,并测试了使用和不使用 Xml 转义的输入,看看能否找到一些无法捕捉到的场景。我做到了,有些恶意表达式不包含 XmleScape 捕获的任何字符。我在我们的 github 上发布了工作演示,你可以找到 这里。
当然,我更新了我们的安全编码指南,现在内容是:“不要使用 Spring 表达语言 (SpEL) 显示或评估 URL 参数。”
此问题的总体影响很大,原因如下:-攻击者可以修改和调用应用程序服务器上的功能。-未经授权访问数据和功能,以及账户劫持和远程执行代码。-成功攻击带来的机密性和完整性问题。
https://www.owasp.org/index.php/Expression_Language_Injection

上周我正在研究 Java Spring 中的漏洞,以更新我们的安全编码指南。我正在研究我们平台上现有的挑战,并通过在JSP页面中显示网址参数在XSS上发现了一些挑战。不正确的代码示例看起来与以下内容类似:
<input type="text" name="username" value="${param.username}">
正确的解决方案是完全删除 URL 参数,描述中提到,以正确的方式转义 URL 参数也是安全的。
现在,我的工作是以开发人员清楚的方式制定安全编码指南,并在编写安全代码的同时尽可能减少对他们的限制。在这种情况下,我更愿意让开发人员保留其预期功能,并建议他们通过转义 URL 参数来安全地执行此操作。这样,代码就不再包含 XSS 漏洞了。上面的例子可以这样保护:
<input type="text" name="username" value="${fn:escapeXml(param.username)}">
这是我们几天来的安全编码指南,直到我偶然发现了一个 关于表达式语言注入的 OWASP 页面。本页介绍如何滥用 Spring 表达式语言 (SpEL) 进行注入,从而产生一些严重影响,包括远程代码执行。我有责任弄清楚是否存在符合我们安全编码指南的代码仍然会受到此漏洞影响的情况。因此,我编写了一个快速测试应用程序来评估 SpEL 表达式,并测试了使用和不使用 Xml 转义的输入,看看能否找到一些无法捕捉到的场景。我做到了,有些恶意表达式不包含 XmleScape 捕获的任何字符。我在我们的 github 上发布了工作演示,你可以找到 这里。
当然,我更新了我们的安全编码指南,现在内容是:“不要使用 Spring 表达语言 (SpEL) 显示或评估 URL 参数。”
此问题的总体影响很大,原因如下:-攻击者可以修改和调用应用程序服务器上的功能。-未经授权访问数据和功能,以及账户劫持和远程执行代码。-成功攻击带来的机密性和完整性问题。
https://www.owasp.org/index.php/Expression_Language_Injection
上周我正在研究 Java Spring 中的漏洞,以更新我们的安全编码指南。我正在研究我们平台上现有的挑战,并通过在JSP页面中显示网址参数在XSS上发现了一些挑战。不正确的代码示例看起来与以下内容类似:
<input type="text" name="username" value="${param.username}">
正确的解决方案是完全删除 URL 参数,描述中提到,以正确的方式转义 URL 参数也是安全的。
现在,我的工作是以开发人员清楚的方式制定安全编码指南,并在编写安全代码的同时尽可能减少对他们的限制。在这种情况下,我更愿意让开发人员保留其预期功能,并建议他们通过转义 URL 参数来安全地执行此操作。这样,代码就不再包含 XSS 漏洞了。上面的例子可以这样保护:
<input type="text" name="username" value="${fn:escapeXml(param.username)}">
这是我们几天来的安全编码指南,直到我偶然发现了一个 关于表达式语言注入的 OWASP 页面。本页介绍如何滥用 Spring 表达式语言 (SpEL) 进行注入,从而产生一些严重影响,包括远程代码执行。我有责任弄清楚是否存在符合我们安全编码指南的代码仍然会受到此漏洞影响的情况。因此,我编写了一个快速测试应用程序来评估 SpEL 表达式,并测试了使用和不使用 Xml 转义的输入,看看能否找到一些无法捕捉到的场景。我做到了,有些恶意表达式不包含 XmleScape 捕获的任何字符。我在我们的 github 上发布了工作演示,你可以找到 这里。
当然,我更新了我们的安全编码指南,现在内容是:“不要使用 Spring 表达语言 (SpEL) 显示或评估 URL 参数。”
此问题的总体影响很大,原因如下:-攻击者可以修改和调用应用程序服务器上的功能。-未经授权访问数据和功能,以及账户劫持和远程执行代码。-成功攻击带来的机密性和完整性问题。
https://www.owasp.org/index.php/Expression_Language_Injection




%20(1).avif)
.avif)
