Example #1
0
	def createHTTPRequest(self, data):
		if isinstance(data, HTTPRequest):
			op, req, post = request.networkRequest()
			self.emit(SIGNAL('browserMakeForgedRequest'), op, req, post)
		else:
			try:
				cookies, post = None, None
				request = HTTPRequest()
				if isinstance(data, int):
					dct = self.history.getHistory(data)
					data = {}
					data['method'] = dct['type']
					data['url'] = dct['request']['url']
					data['headers'] = dct['request']['headers']
					data['post'] = dct['request']['content-QByteArray']
					data['cookies'] = dct['request']['cookies']
				# fill data in the HTTPRequest
				request.setMethod(data['method'])
				request.setUrl(data['url'])
				request.setHeaders(data['headers'])
				# set tampered cookies in the current cookiejar
				if data['cookies']:
					request.setCookies(data['cookies'])
					self.cookieJar().setCookiesFromUrl(request.getQtCookies(), request.url)
				# process and store the POST data using post_history structure
				if data['post']:
					request.setData(data['post'])
				op, req, post = request.networkRequest()
				self.emit(SIGNAL('browserMakeForgedRequest'), op, req, post)
			except Exception, error:
				core.management.logger.exception("NetworkManager::createHTTPrequest- Error while replicating the HTTP request (Exception: %s)" % error)
Example #2
0
 def prepareRequest(self):
     # load all the components in an HTTPRequest structure
     if self.refresh_values.isEnabled():
         # retrieve data
         self.nrequest = HTTPRequest()
         nrequest = {
             'method': None,
             'url': None,
             'headers': [],
             'cookies': [],
             'post': []
         }
         request_iter = QTreeWidgetIterPy(self.request)
         firstiter, state = True, "headers"
         for elmt in request_iter:
             if firstiter:
                 nrequest['method'] = elmt.text(0)
                 nrequest['url'] = elmt.text(1)
                 firstiter = False
             else:
                 # state: headers -> cookies -> post
                 if "-" == elmt.text(0):
                     continue
                 if "headers" == state:
                     if "Cookies" == elmt.text(0):
                         state = "cookies"
                         continue
                     elif "POST data" == elmt.text(0):
                         state = "post"
                         continue
                 elif "cookies" == state:
                     if "POST data" == elmt.text(0):
                         state = "post"
                         continue
                 nrequest[state].append((elmt.text(0), elmt.text(1)))
         self.nrequest.setMethod(nrequest['method'])
         self.nrequest.setUrl(nrequest['url'])
         self.nrequest.setHeaders(nrequest['headers'])
         # set tampered cookies in the current cookiejar
         if nrequest['cookies'] and 0 < len(nrequest['cookies']):
             self.nrequest.setCookies(nrequest['cookies'])
             self.netmanager.cookieJar().setCookiesFromUrl(
                 self.nrequest.getQtCookies(), self.nrequest.url)
         # process and store the POST data using post_history structure
         if nrequest['post'] and 0 < len(nrequest['post']):
             self.nrequest.setData(nrequest['post'])