输入反映在双引号之间的标记参数内是啥意思?

Posted

技术标签:

【中文标题】输入反映在双引号之间的标记参数内是啥意思?【英文标题】:What does The input is reflected inside a tag parameter between double quotes mean?输入反映在双引号之间的标记参数内是什么意思? 【发布时间】:2019-12-08 01:23:08 【问题描述】:

最近对Acunetix 的扫描在我的一个页面上显示了一些vulnerability。我尝试复制它,但找不到任何漏洞。所谓的易受攻击的标题是输入反映在双引号之间的标签参数中

扫描为我的page 提供了以下结果。

verif.php
Details URL encoded GET input afficher_forgot_password was set to **Oui"sTYLe='acu:Expre/**/SSion(Afih(9717))'bad="**
The input is reflected inside a tag parameter between double quotes.

Request headersGET /verif.php?afficher_forgot_password=Oui"sTYLe='acu:Expre/**/SSion(Afih(9717))'bad="&lang_abbreviation=en&membre= HTTP/1.1
 Connection: keep-aliveCookie: PHPSESSID=feef28e9052ce51f6701e34749ca30ac;lang_abbreviation=enAccept: */*Accept-Encoding: gzip, User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (Khtml, likeGecko) Chrome/73.0.3683.103 Safari/537.36

这是一个direct link,它重现了所谓的漏洞,但我在页面上看不到任何漏洞。 The input is reflect inside a tag parameter between double quotes 是什么意思?

【问题讨论】:

跨贴security.stackexchange.com/questions/214726/… 【参考方案1】:

我建议这是因为您的参数值中有双引号。

Oui"sTYLe='acu:Expre/**/SSion(Afih(9717))'bad="

如果将其插入数据库并正确参数化,则应该没有问题。

但是,这应该是正确的 URL 编码,以防止这种潜在的问题。由于您的值显然/可能还包括一个&符号,它可能会抛出或中断其他参数,或者只是在知道您的代码将接受它的情况下注入它自己的参数。

如果您真的需要这种格式的代码才能正常工作,您可以随时在服务器端对其进行解码。您还可以使用请求正文中的参数而不是 URL 来查看 POSTing。您仍然可能希望对其进行 URL 编码,但对于自动扫描工具来说,这可能不是问题。

【讨论】:

URL 编码用于编码以 HTTP GET 或 POST 参数发送的数据,而不是用于在页面上呈现数据。发帖者不需要这种“格式”来工作,它只是漏洞扫描中出现的东西,所以没有必要尝试解码这个或任何东西。 @multithr3at3d,我补充说,以防他们使用它来创建 HTML 标签,他们将它用作字符串。这不是将 HTML 标记作为字符串传递的好例子,但其他人可能会这样做。我什至不是说将 HTML 标记作为字符串传递是个好主意,我只是提供了可能的选项。

以上是关于输入反映在双引号之间的标记参数内是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

Python,在双引号之间的字符串中检测带有引号的字符[关闭]

VB里面有些运行函数加括号和加引号有啥区别

正则表达式在双引号内转义双引号

无法使用正则表达式在双引号之间提取字符串

如何使用 pandas.read_csv 在双引号之间读取带有千位分隔符的数字 [重复]

MySQL双引号加逗号,是啥分隔符