2016-07-10 2 views
0

scapy 및 python에 대한 도움이 필요합니다. 내가 spesific 사이트에 요청을 얻을 전송 ... 그리고 냄새 및 HTTP 필터 나 관련 패킷을 필터링하고 다음 난 단지 HTML 코드를 얻을 싶어하지만 난이 작업을 수행하는 방법을 잘 모릅니다 ...scapy에서 HTTP GET 요청 후 html 파일을 만드는 방법

os.system('iptables -A OUTPUT -p tcp --tcp-flags RST RST -j DROP') 
os.system('iptables -L') 

randport = random.randint(1024,65535) 
syn = IP(dst=ip)/TCP(sport = randport, dport=80, flags='S') 

syn_ack = sr1(syn) #getting the ack 
getstr = 'GET/HTTP/1.1\r\nHost:' + url + '\r\n\r\n' 
ack = IP(dst=ip)/TCP(dport=80, sport=syn_ack[TCP].dport, 
       seq=syn_ack[TCP].ack, ack=syn_ack[TCP].seq + 1, flags='A')/getstr 

send(ack) 
packets = sniff(count=0, lfilter=http_filter, timeout=20) 
http = open(url + ".html", "w") 

for p in packets: 
    if p[IP].src == ip: 
     #what i need to do here? 

도와주세요. 전체 코드 만 HTML 코드로 저장해야합니까? HTTP 헤더없이 코드를 저장하십시오. 열 수있는 HTML 만 온라인 한 사이트처럼로드됩니다.

답변

-1

이와 비슷한 기능이 있습니까?

import urllib2 
re = urllib2.urlopen("http://www.website.org") 
html = re.read() 
f = open("html.html", "w") 
f.write(html) 
f.close() 
0
from scapy. all import * 
def stopfilter(x): 
if x[IP].dst == 'src_ip': #src_ip 
    return True 
else: 
    return False 

get = 'GET /index.html HTTP/1.1\n\n' 
syn_ip = IP(src='src_ip', dst='dst_ip') #enter your ip's here 
syn_syn = TCP(sport = 5558, dport=80, flags='S',seq = 1000) 
syn_ack = sr1(syn_ip/syn_syn,verbose=0) 

if syn_ack: 
temp = syn_ack.seq 
myack = temp + 1 
ack_packet = TCP(sport=5558,dport=80,flags='A',seq=syn_ack.ack,ack=myack) 
send(syn_ip/ack_packet,verbose=0) 
payload_packet = TCP(sport=5558,dport=80,flags='A',seq=syn_ack.ack, ack=myack) 
p = syn_ip/payload_packet/get 
server_resp = sr1(p,verbose=0) 
a = sniff(iface = "eth9",filter = "tcp port 80",stop_filter=stopfilter) 

for packet in a: 
    if packet.getlayer(Raw): 
     l = packet.getlayer(Raw).load 
     rawr=Raw(l) 
     rawr.show()