使用python检测基于DOM的XSS网站

时间:2014-10-05 16:04:23

标签: python xss detect

我有一个示例网址:http://www.foo.bar/index.php?ids=111

我发现它有http://www.foo.bar/index.php?ids="><SCrIpT>alert('XSS')</ScRiPt>

之类的漏洞

与普通网址和xss网址不同的是,已在浏览器中显示警告框。但是当使用python时,我怎么能看到它或者检测哪个url是漏洞?

我已经尝试过python请求库:

import requests

xss_url = 'http://www.foo.bar/index.php?ids="><SCrIpT>alert('XSS')</ScRiPt>'
r = requests.get(xss_url);
print r.text

normal_url = 'http://www.foo.bar/index.php?ids=111'
t = requests.get(normal_url);
print t.text

r.text和t.text的结果相同。

2 个答案:

答案 0 :(得分:1)

确认注射是否是您可以执行的可执行脚本,例如。

答案 1 :(得分:1)

基本检查是要查看您的有效负载是否存在于页面的来源中而不进行转义,这样的事情可以解决问题:

payload = "<SCrIpT>alert('XSS')</ScRiPt>"
xss_url = 'http://www.foo.bar/index.php?ids=">'+payload

r = requests.get(xss_url)

if payload.lower() in r.text.lower(): print("vulnerable")

这将检查页面的源中是否存在有效负载,不区分大小写。如果网站不容易受到攻击,那么有效负载将转换为HTML entities,而浏览器中的相同内容实际上是不同的,例如<变为&lt;

注意:这可用于确认是否存在XSS但不否认存在XSS;例如,不正确的转义会使得返回false,而有效负载仍然可以在真实的浏览器中运行。