我可以通过socks发送一个tcp syn数据包,但HTTP代理呢?有可能吗?
这是带袜子的代码(它有效):
p = bytes(IP(dst="DESTINATIONIP")/TCP(flags="S", sport=RandShort(), dport=80))
while True:
try:
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, socksip, sockport, True)
s = socks.socksocket()
s.connect((DESTINATIONIP,DESTINATIONPORT))
s.send(p)
print ("Request Sent!")
except:
print ("An error occurred.")
答案 0 :(得分:0)
我假设你说"发送一个SYN数据包"你的意思是"建立连接",因为你不能通过SOCKS发送任何裸IP层数据包,只能建立连接并发送TCP / UDP有效载荷。
对于http代理,它类似,你只需使用http隧道命令" CONNECT",例如你发送
CONNECT somewhere.example.com:443 HTTP/1.1
Host: somewhere.example.com
etc
并等待
HTTP/1.1 200 Connection established
etc
响应。您需要考虑http响应消息中的所有数据(直到收到HTTP标头的末尾为止),这样您就不会将其与有效负载混合起来。