gpt4 book ai didi

javascript - 执行存在于输入值字段中的 javascript - JavaScript

转载 作者:行者123 更新时间:2023-11-30 16:53:16 32 4
gpt4 key购买 nike

我有一个 html 格式的表单:

<form name="foo" action="http://localhost:3000/my_url" method="POST">
<input type="text" name="username" value="alert('hello')" >
</form>

我需要得到 JavaScriptvalue input 字段执行,但只能通过表单的 submit .原因是页面是一个模板所以我不控制它(不能有

<script>
var input = document.getElementsByName("username");
</script>

或任何其他<script>标记添加到页面。我正在尝试证明有可能对格式错误的 <input> 进行攻击。字段,特别是使用模板。我怎么能有那个 Javascript执行表单提交?请记住,我不允许修改除那部分以外的页面内容。因为我正在做 POST那种形式,我可以设置 <input>字段(并且只有 <input> 字段)到我想要的任何东西。我可以做

username=<script>alert('hello')<script>
<input type="text" name="username" value="<script>alert('hello')<script>" >

username=window.onload = function() { alert('hello') }
<input type="text" name="username" value="window.onload = function() { alert('hello') }" >

我想过做一个

username=document.forms['myform'].onsubmit() = function() { alert('hello') }
<input type="text" name="username" value="document.forms['myform'].onsubmit() = function() { alert('hello') }" >

所有这些都是有效的。但是我需要得到 Javascript在要执行的标记中。我怎样才能做到这一点?安全漏洞是如果没有正确清理,标签将如何被利用。根据@guest271314“要求包括添加标签......”

最佳答案

当您使用模板引擎呈现 html 内容时,服务器通常会对其进行清理和转义,以防止被动注入(inject)跨站点脚本或简称为 XSS。

这种攻击可以很容易地在没有强制执行前面提到的安全措施的服务器上实现,方法是发布格式错误的内容,这些内容稍后会被模板引擎愉快地呈现。

例如发送用户输入的表单

<form name="foo" action="http://localhost:3000/my_url" method="POST">
<input type="text" name="username" value="" >
</form>

如果用户发送类似于 "><script>alert('foo')</script> 的内容稍后您以另一种形式显示此输入

<form name="bar" action="http://localhost:3000/my_other_url" method="POST">
<input type="text" name="username" value="@template_engine_render(posted_username_value)@" >
</form>

结果输出将是

<form name="bar" action="http://localhost:3000/my_other_url" method="POST">
<input type="text" name="username" value="">
<script>alert('foo')</script>
</form>

因为 "> 字符关闭输入标签,您最终将在页面中执行任意用户 javascript 代码。

这就是为什么“永远不要相信用户输入”是网络最基本的安全规则之一。

关于javascript - 执行存在于输入值字段中的 javascript - JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30170664/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com