Python/2.7 simple coding(+ c++)

webhacking.kr 31

qkqhxla1 2014. 11. 30. 18:43

webhacking.kr 서버에서 내 주소로 10000~10010사이의 랜덤한 숫자의 포트로 패킷을 쏜다.


그걸 그냥 받아먹으면 된다. 


1. 공유기를 쓰는 사람은 10000~10010포트를 다 포워딩해준다.


2. 방화벽 규칙에서 허용하던지, 아니면 문제 풀 동안 방화벽을 잠시 끈다.


3. nc를 실행시키거나 프로그램을 짜서 패킷을 받는다.


nc를 실행시키면 커맨드창 하나당 하나밖에 nc를 못띄우는데, nc를 한개만 띄우고 새로고침을


여러번 해서 내가 설정한 포트로 오게하거나, nc를 10개를 띄우면 패킷을 한방에 받을 수 있다.


아니면 nc를 10개를 실행시키는것과 같은 효과의 코드를 짤 수도 있다.


webhackingkr31.py




import socket,threading,urllib2
 
def bind(port):
    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    s.bind(('192.168.219.143',port))
    s.listen(1)
    conn,addr = s.accept() 
    print conn.recv(1000) 
 
for i in range(0,10):
    th = threading.Thread(target=bind,args=(10000+i,)) #쓰레드 10개를 돌리는데 쓰레드 하나당 nc 1개
    th.start()

req = urllib2.Request('http://webhacking.kr/challenge/web/web-16/?server=내 아이피주소')
req.add_header('cookie','쿠키값')
urllib2.urlopen(req).read()