使用Python检测HTML页面上的JavaScript

2024-09-29 23:25:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在进行一个网络安全项目,该项目检查网站上的XSS漏洞,希望可以用于笔测试人员(如果你不相信我,并认为我是某种脚本kiddy,这里是类网站:http://netsec.cs.northwestern.edu/projects/)。在

所以,我在检测给定HTML页面上的JavaScript时遇到了困难。我花了很多时间安装PyV8和V8,它们似乎可以计算简单的JavaScript语句。但是,对于更“复杂”的JavaScript问题,例如警报框,PyV8似乎不支持它。因此,我怀疑是否可以向PyV8提供一些任意的JavaScript代码,并期望它给我相应的JavaScript输出。在

我确实在DrEval中找到了这个JS服务器/客户机,但在最新版本的V8/PyV8中似乎不起作用。在

请帮忙!从今天起,我的项目大约一周后就要交了,班上似乎没有人能帮我,因为这是一个相当奇怪的问题。。在

嗯。。如果这个问题以前在其他地方得到过回答,我会提前道歉。我搜索了这个话题至少两个小时。。在

提前感谢您的回复!在


Tags: 项目脚本http网站javascriptcsedu漏洞
3条回答

PyV8是v8javascript引擎的Python绑定。它甚至可以评估最复杂的javascript代码。谷歌Chrome也在使用它。在

也就是说,要使它正常工作,你需要做一些事情。首先,PyV8只是一个javascript引擎。它不构造DOM。因此,您需要自己创建一个DOM并使用它运行PyV8上下文。在

另外,你说过警报功能不起作用。alert();函数是DOM的一部分,它是window.alert();的简写。因此,必须在DOM中指定每个函数和属性。在

PyV8源代码附带一个简单的DOM。您可以从http://code.google.com/p/pyv8/source/browse/下载它

一种令人难以置信的黑客方法是在网页源代码中查找“text/javascript”。在

import urllib2
if urllib2.urlopen('http://www.google.co.uk').read().find('text/javascript') == 0:
    print "It has js."

这不是最好的答案,我会很高兴听到有人谁知道正确的做法。在

我不太确定你想做什么,但这里有一些想法:

  1. 如果要在网页上下文中运行JavaScript代码,则需要一个浏览器或一个浏览器的仿真。试试envjs。不过,它需要Java,因为它需要JavaScript解释器。在

    我不知道有一个库可以为Python提供相同的功能。也许你能解决这个问题。envjs主要是用JavaScript编写的,但它需要解释器提供一些支持功能(打印到控制台、下载数据、打开文件)。

  2. 如果可以将JavaScript代码注入页面,则会发生XSS漏洞,无论已经存在什么代码。因此,您需要检查表单的所有字段,将表单发布到服务器,然后检查它是否正确地转义下一页上的所有值。

相关问题 更多 >

    热门问题