我已经建立了一个系统来练习Padding Oracle攻击,经过大量工作后我发现我的漏洞无效,因为我的代码没有用cookie保持状态!在阅读完cookie后,我仍然可以在修改代码时使用一些帮助,以便正确维护状态。
我开始制作我的饼干罐。这也应该从我想要的网站(据我的理解)中获取cookie:
cookieJar = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJar))
opener.open('http://192.168.1.12/main_login.php')
我有正常的工作代码来抓取网站数据,所以我可以通过BeautifulSoup解析它
usock = urllib2.urlopen("http://192.168.1.12/main_login.php")
data = usock.read()
usock.close()
并发送包含相应数据的帖子:
url = 'http://192.168.1.3/check_login.php'
values = {'login_captcha': CAPTCHAguess, 'captchaID': BogusCipher, 'iv': IVprime}
data = urllib.urlencode(values)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
the_page = response.read()
response.close()
在上面两位代码中我需要更改什么才能在拉取和发布数据时使用cookie来维护状态?
答案 0 :(得分:1)
您需要为所有请求使用相同的开启工具。所以而不是:
response = urllib2.urlopen(req)
使用:
response = opener.open(req)
在这些情况下必须注意:考虑使用优秀的requests
库