首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以在输入框中伪造post请求并绕过最大长度?

问是否可以在输入框中伪造post请求并绕过最大长度?
EN

Security用户
提问于 2012-06-18 15:08:09
回答 2查看 4.7K关注 0票数 4

我有带有maxlength=12的输入框,该输入框易受xss攻击。

但是,由于最大长度12,所以不可能构造任何真正有效的xss向量。用户输入存储在属性value="user input"中。当用户使用burpproxy拦截post请求时,他可以更改post参数并导致xss。

现在,我的问题是,可以从其他站点发出一个post请求,该请求绕过maxlength元素。在我的攻击尝试中,它会带我到输入框所在的页面,并切断第12个字符之后的所有内容。

是否可以伪造post请求并绕过最大长度来利用xss问题?

这是在页面上搜索最大长度的表单:

这是我试图从我的页面中利用它的方法:

当我单击“剥削页面”按钮时,它只会将我送回主页面,并在第12个字符处切断输入。

EN

回答 2

Security用户

回答已采纳

发布于 2012-06-18 16:22:33

是。这是可能的。Maxlenght是客户端浏览器的DOM对象中的html属性。

Maxlenght仅在客户端浏览器中有效,而在服务器端,除非您编码服务器端以验证输入长度,否则在服务器端没有意义。

如果您使用的是不创建DOM对象的拦截代理,则可以轻松绕过Maxlength或任何其他参数和javascripts。

绕过可以通过具有不同html属性的不同域/网页完成,该属性不对输入长度施加任何限制以导致XSS。

听起来您尝试的XSS类型是服务器端非持久性XSS缺陷-用户输入由恶意代码组成,这些恶意代码在服务器对请求的响应中被返回,它不会存储在web应用程序中,因此它是特定于该请求的。

我认为您需要改进用于利用XSS的javascript。onmouseover="alert(0)"无法利用XSS,它只是对客户端浏览器基于DOM的本地操作,onmouseover不会将输入发送到服务器以返回给客户端。您的javascript必须发送到http://www.site.rs/usersearch.php并由服务器返回。

票数 6
EN

Security用户

发布于 2012-06-18 16:23:17

maxlength不是一种保护,而是为了可用性目的(而不是安全性)。有很多方法可以绕过这种保护。最简单的方法是用表单创建另一个网站,提交到您的位置。

所有的消毒/限制都不应该在客户端使用。每个JavaScript或xHTML (如maxlength)都不利于安全目的。最好的解决方案是进行服务器端验证。

票数 4
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/16187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档