我试图找出一种方法来理解JavaScript脚本的哪一行负责XSS注入。让我们假设我有一个网站提示输入我的名字,在某个页面上,我将我的名字设置为类似<script>alert("XSS")</script>的东西。
后来,我浏览了网站,不知怎么地,我看到我的有效载荷正在执行。我查看页面的源代码,发现我的有效负载不存在,所以它应该是由一些JavaScript代码触发的。找到哪一行代码真正负责注入的最佳方法是什么?我通常会查找innerHTML(...)调用,试图找出注入有效负载的元素的ID,但它并不总是有效的。我也尝试使用<script>debugger;</script>作为有效负载,但我只看到我的脚本正在调试,而不是负责注入的脚本。
最好的方法是在触发alert()之后立即停止执行负责注入的脚本,但我没有找到任何方法。有什么帮助吗?
发布于 2017-02-09 21:26:25
这里的部分答案是:如果脚本是在eval的帮助下执行的(如果在jQuery 2.x中使用html(),就会发生这种情况),您可以将有效负载更改为抛错:
throw "XSS payload executed!";然后启动控制台(大多数浏览器中为F12)。浏览站点,直到触发有效负载。当抛出错误时,您将在控制台中有一个很好的strack跟踪来检查。
https://security.stackexchange.com/questions/150894
复制相似问题