2015-02-07 57 views
0

我正在嘗試使用python打開網頁,並執行JavaScript注入。我們的目標是要真正改變某些形式的數值。(例如:將數據放入一種形式)目前,我已經打開了一個網頁編寫的測試程序是:Javascript注入與PYthon

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

所以,現在我在想什麼了注射(在這種情況下,印刷世界,你好)

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 

,所以我決定探索一下。而且我發現,蟒蛇很可能將名字

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

的URL於是,我就分成兩行

f = u.urlopen("http://www.google.com/") 

f.urlopen("javascript:alert(\" hello world \")") 
print f.read() 
f.close() 

但是,這並不工作。

如何解決這個問題?最終我希望能夠使用Javascript更改表單數據。

+1

這就是...不是如何JavaScript注入工作... – 2015-02-07 20:56:51

+0

在谷歌瀏覽器我只是鍵入javascript :(後跟我的代碼),所以我想知道如果這是一個類似的過程 – frogeyedpeas 2015-02-07 20:58:02

+0

@downvoter,請解釋一下?我解釋了我想要做的事情,我展示了工作,並且給出了我的假設,你還能爲此付出什麼呢? – frogeyedpeas 2015-02-07 21:00:56

回答

0

可能使用Beautiful Soup

您也可以查看urllib2模塊或requests庫來幫助您。

或者您可以嘗試更新所需發佈數據的HTTP標頭,然後再回復服務器。

祝你好運!