使用PYthon的Javascript注入

Javascript Injection with PYthon

本文关键字:注入 Javascript PYthon 使用      更新时间:2023-09-26

我正试图使用python打开网页,并执行javascript注入。目标是实际更改一些表单的值(例如:将数据放入表单)目前,我为打开页面编写的测试程序是:

import urllib2 as u
f = u.urlopen("http://www.google.com")
print f.read()
f.close()

所以现在我想的是注射(在这种情况下打印Hello world)

import urllib2 as u
f = u.urlopen("http://www.google.com/javascript:alert('" hello world '")")
print f.read()
f.close()

但是当我运行代码时,我收到了以下错误:

Traceback (most recent call last):
  File "c:'Sid'Rutgers'3 Semester'HackHerz'ChalupaCity'Sid'thefile.py", line 12, in <module>
    f = u.urlopen("http://www.google.com/javascript:alert('" hello world '")")
  File "c:'Anaconda'lib'urllib2.py", line 127, in urlopen
    return _opener.open(url, data, timeout)
  File "c:'Anaconda'lib'urllib2.py", line 410, in open response = meth(req, response)
  File "c:'Anaconda'lib'urllib2.py", line 523, in http_response
    'http', request, response, code, msg, hdrs)
  File "c:'Anaconda'lib'urllib2.py", line 448, in error
    return self._call_chain(*args)
  File "c:'Anaconda'lib'urllib2.py", line 382, in _call_chain
    result = func(*args)
  File "c:'Anaconda'lib'urllib2.py", line 531, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
HTTPError: HTTP Error 400: Bad Request

所以我决定探索一下。我发现python很可能会转到这个名字的URL

http://www.google.com/javascript:alert('" hello world '")

所以我试着把分成两行

f = u.urlopen("http://www.google.com/")
f.urlopen("javascript:alert('" hello world '")")
print f.read()
f.close()

但这也不起作用。

如何完成?最终,我希望能够使用Javascript更改表单数据。

可能使用Beautiful Soup?

您可能还希望查看urlib2模块或请求库来帮助您。

或者,在回复服务器之前,可以尝试使用所需的post数据更新HTTP标头。

祝你好运!