在通过Python访问一些网站 如打印机的管理页面时需要登录才可以下载到想要的页面,此时需要用到Python的httplib和urllib模块解决,通过截取网站的登录cookie来成功登录网站。
0x00 获取cookie
首先需要获取要登录网站的cookie,由于cookie中记录了登录信息,所以需要抓登录过程中的cookie包。通过Firefox的开发者工具可以找到登录过程中的数据包和其中的数据
然后通过Python脚本下载网站
def get_cookie():
params = urllib.urlencode({"i0019":"admin",
"i0017":"2"});
headers = {"Host":"192.168.110.172",
"User-Agent":'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0',
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Language":"en-US,en;q=0.5",
"Accept-Encoding":"gzip, deflate",
"Referer":"http://192.168.110.172/login.html",
"Connection":"keep-alive"
};
conn = httplib.HTTPConnection("192.168.110.172");
conn.request(method="POST",url="http://192.168.110.172/checkLogin.cgi",headers=headers,body=params);
response = conn.getresponse();
if response.status == 302:
print "发布成功!";
return response.getheaders()[1][1]
else:
print "发布失败";
return ''
conn.close();
图中为获取打印机后台信息的网址,headers的信息按照抓取的headers信息修改即可。