在HTTPS站点上使用Python,Selenium和Scapy获取GET请求

时间:2018-07-02 10:04:16

标签: python selenium automation scapy

这是我第一次来。我正在尝试创建一种工具来验证Python中标记解决方案的实现。

现在,我正在使用Selenium + Webdriver与Web交互,并通过Scapy嗅探流量。在HTTP站点上,我可以使用以下命令查看有关数据包有效负载的信息:

 str(bytes(packet[TCP].payload)))
Output:
b'GET /b/ss/xxdeprod/1/JS-2.2.0-D7QN/s5173447115256?AQB=1&ndh=1&pf=1&t=2%2F6%2F2018%2011%3A14%3A41%201%20-120&sdid=699ADD6A6B7CA749-5E0105ECF41B83A5&D=D%3D&mid=16848006205106756570809327525945601030&aamlh=6&ce=UTF-8&ns=xx&pageName=home.html&g=http%3A%2F%2Fwww.xx.de%2F&cc=EUR&ch=home&server=www.xx.de&events=event61%2Cevent4%2Cevent89%3D3%2Cevent233&products=Cars%3BPage%20not%20identified%20with%20any%20car%3B1%3B%3B%3BeVar73%3DPage%20not%20identified%20with%20any%20car%7CeVar56%3DSpecial&aamb=RKhpRz8krg2tLO6pguXWp5olkAcUniQYPHaMWWgdJ3xzPWQmdj0y&h1=home&v11=home.html&v12=home&c13=New&c21=Page%20not%20identified%20with%20any%20car&c22=Page%20not%20identified%20with%20any%20car&c26=No%20informed&v26=No%20informed&c31=horitzontal&v31=D%3Dv0&c34=N%2FA%20or%20Landing%7CN%2FA%20or%20Landing%7CN%2FA%20or%20Landing&v34=11%3A14%3A41%7CMonday%7C2%2F7%2F2018%7CWeekday&c38=Entire%20Site&c39=Direct&c49=3&c50=http%3A%2F%2Fwww.xx.de%2F&v61=D%3Dmid&v63=Direct&s=1920x1080&c=24&j=1.6&v=N&k=Y&bw=1920&bh=925&mcorgid=F050097853468AB40A490D4C%40AdobeOrg&AQE=1 HTTP/1.1\r\nHost: xx.d3.sc.omtrdc.net\r\nConnection: keep-alive\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36\r\nDNT: 1\r\nAccept: image/webp,image/apng,image/*,*/*;q=0.8\r\nReferer: http://www.xx.xx/\r\nAccept-Encoding: gzip, deflate\r\nAccept-Language: es,en-US;q=0.9,en;q=0.8\r\n\r\n'

但是在HTTPS网站上,我看到的只是字节,例如:

str(bytes(packet[TCP].payload)))
Output:
b'\x16\x03\x01\x02\x08\x01\x00\x02\x04\x03\x03%\xe5H\xcb\xe1:\x92\x8a%W\xe7\xc7\x9a\x8f\xa1\x19\x98>\xa5m\xe0\xf7/\x9a\xfd\xad\xd2P(\xa4\x84V \x02\xa6\xf0\n\x8b\xa5\x03\x00C\x7fb\xd3\xac\xcf\xe7t\xa3\te\xb5\xc0\xb6\x15^\xf83|\x85\xc3>\xcbg\x00"\x9a\x9a\x13\x01\x13\x02\x13\x03\xc0+\xc0/\xc0,\xc00\xcc\xa9\xcc\xa8\xc0\x13\xc0\x14\x00\x9c\x00\x9d\x00/\x005\x00\n\x01\x00\x01\x99ZZ\x00\x00\xff\x01\x00\x01\x00\x00\x00\x00\x1c\x00\x1a\x00\x00\x17endesa.d3.sc.omtrdc.net\x00\x17\x00\x00\x00#\x00\xd0ec1d1752-2540-4\x00\x06S\x14\x8a(\xd3\xeb\xab\xcc:\xac\xd0+\xa5\x86[N\x0e\x82\x89\xde\x05\xe4\x98\\/\x0e6\xfd\xc9m_b\x8b*\xdf\xdc\xaf\x83,\xd3\xc1\xf3\xa4@y-\xb9H\x9a\xa2\'7\xfc\x15\x9d4\xd7\xc3|\x15Te\x0bZ\x1c\xd2\x82\x05\xc1\xfc\xc8\xa8\xe5\xf0K\xe7\x91\x92*\xcd\x04\xacG\x97n\x8aT\xf0\xf8\x97gk\xee\x86aQ&\t\xc5Sr\x8eg\x8c\xe3{\xaa\x84\xbe\x82\n\xbdG\xb8d=\xeeN\x94\x87 2\xc1(:0\xa3\xccU:\xec9\x11\xf9r\x87+\xed\xf0z!\xea\x17K`\x98\x1a:\xa6t.^l;^gE\x82\xef&\xe6\xfe\x057\xae\x9ca\x0c&h\xa8\xc7<x\x87z\x80\x06\xea\x1cDw1\x9f6\xd5\xf0S\xeeM\xf9\x00\r\x00\x14\x00\x12\x04\x03\x08\x04\x04\x01\x05\x03\x08\x05\x05\x01\x08\x06\x06\x01\x02\x01\x00\x05\x00\x05\x01\x00\x00\x00\x00\x00\x12\x00\x00\x00\x10\x00\x0e\x00\x0c\x02h2\x08http/1.1uP\x00\x00\x00\x0b\x00\x02\x01\x00\x003\x00+\x00)jj\x00\x01\x00\x00\x1d\x00 f\x8a\x90\x8f0\x9d\xa0\xa4\x06\xb9\xba\x8a\x85<\xff\xa8\xeab6Du\x0bf\x01\xde|hB\x9ct\x80>\x00-\x00\x02\x01\x01\x00+\x00\x0b\n\x1a\x1a\x7f\x17\x03\x03\x03\x02\x03\x01\x00\n\x00\n\x00\x08jj\x00\x1d\x00\x17\x00\x18\xaa\xaa\x00\x01\x00'

我已经尝试过使用该方法的binascii库

binascii.b2a_uu(data)

但是没有成功的结果。有没有办法解码来自HTTPS站点的有效负载?也许我走错了方向?有没有办法在没有编码的情况下获取此请求?我要达到的目的是获取信息,使其在浏览器的开发人员工具中显示。

Network URL Rquest

1 个答案:

答案 0 :(得分:0)

由于https有效负载已加密,因此如果没有私钥,将无法对其进行解码。这就是HTTPS的全部重点:使其他人看不见内容

除此之外,如果您想查看HTTPS TLS交换,则可以使用以下命令在scapy中导入tls模块: load_layer("tls")

您将无法再获得任何其他加密的数据。如果您拥有服务器私钥(它是您自己的服务器),则可以使用任何RSA / ECDSA API对其内容进行解码,但是否则您将无法解码。