2015-02-07 2 views
0

Я пытаюсь использовать python для открытия веб-страниц и выполнения javascript-инъекции. Цель состоит в том, чтобы реально изменить значение некоторых форм (например: ввод данных в форму) В настоящее время программы испытаний, которые я написал для открытия вверх страницы:Javascript Injection with 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 

Так я решил исследовать немного. И я обнаружил, что питон, вероятно, будет в 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.

+1

Это не то, как работает JavaScript-инъекция ... –

+0

В google chrome Я просто набираю javascript: (за которым следует мой код), поэтому мне было интересно, был ли подобный процесс – frogeyedpeas

+0

@downvoter, пожалуйста, объясните? Я объяснил, что я пытаюсь сделать, я показал работу, и я дал свою гипотезу, что еще вы можете сделать для этого? – frogeyedpeas

ответ

0

Возможно использование Beautiful Soup?

Возможно, вы также захотите изучить модуль urllib2 или библиотеку requests, чтобы помочь вам.

Или вы можете попробовать обновить заголовки HTTP с требуемыми данными сообщения, прежде чем отвечать на сервер.

Удачи вам!