如何通过html中的form标签发送换行符“\n”
Posted
技术标签:
【中文标题】如何通过html中的form标签发送换行符“\\n”【英文标题】:How to send a new line character "\n" through form tag in html如何通过html中的form标签发送换行符“\n” 【发布时间】:2021-11-26 13:46:43 【问题描述】:我想通过 POST 方法为 XSS 编写 POC。在玩了很多html表单标签之后,我终于能够构造一个除了单个字符“\n”之外的有效载荷。 XSS 需要该字符才能使其工作。有效载荷看起来像这样
<input hidden=true type="search" name="&#13;N<html><body><script>alert(document.domain)</script><h1>" value="</h1></body></html>">
但是,在 HTTP POST 请求中,提交后的换行符 &#13;
会转换为 \n\r
而不是 \n
。有没有办法解决这个问题??
【问题讨论】:
为什么需要换行符?不能只注入">
吗?
如果它不接受初始的 \n
字符,它会完全中断,而不添加 \n
它只会给出 json 有效负载的错误,而不是反映有效负载。我认为这是某种与 protobuf 相关的东西,尽管后端不检查 content-type
标头。 &#13;
后面的N
表示payload的十六进制长度。
原来'\n'
只将光标移动到下一行而不将光标移回第0列。'\r'
用于将光标返回到第0列。所以使用"\n\r"
或@ 987654334@ 比只使用'\n'
更正确,尤其是在 HTTP 和类似协议中。没有'\r'
,你可爱的电传打印机就无法工作。你知道,通过电传打印机打印出 HTTP 页面很有趣 ;-) 如果需要,PS 操作系统会自动将 '\n'
转换为 "\n\r"
也会自动将它们从 "\n\r"
转换回 '\n'
。 "\n\r"
用于电传打字机,而'\n'
用于显示器。
【参考方案1】:
解决方案很奇怪。只需在&#13;
之前放置一个空格即可解决问题。
【讨论】:
您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。以上是关于如何通过html中的form标签发送换行符“\n”的主要内容,如果未能解决你的问题,请参考以下文章