Python/2.7 information

유효한 웹페이지 찾기?

qkqhxla1 2014. 10. 17. 16:39

http://www.neroa.com/q/?id=q1 의 2번 문제를 대상으로...


코딩 연습용으로 다시 짜봤습니다. 2번 풀려면 디렉터리를 무작위로 대입해서 풀어야되는데 


아무것도 모를때는 dirbuster라는 툴..... 을 이용해서 했었는데 툴은 안쓰려는 지금의 마음가짐으로 


다시 ㄱㄱ


directory-list-lowercase-2.3-small.txt


에서 한 단어씩 가져와서 대입. 리눅스 환경의 vi에서 쓰여진 것 같습니다. txt로 열면


구분자가 좀 이상하게 보입니다.



import urllib2
file = open("directory-list-lowercase-2.3-small.txt","r")

for line in file: #파일에서 한줄씩 가져옴.
    req = urllib2.Request('http://neroa.com/level/2/'+line.split('\n')[0]+'/') #split로 줄내림을 잘 없애주고 문자열을 만듬.
    req.add_header('cookie','small_id=zzzzz; small_nic=zzzzz; system_id=zzzzz; system_nic=zzzzz') #로그인 정보 추가.
    print 'http://neroa.com/level/2/'+line.split('\n')[0]+'/' #현재 어떤 디렉터리 요청을 보내는지 출력
    try:
        page = urllib2.urlopen(req).read()
        if page.find("""location.replace("/level/2/moon.htm")""") == -1 and line.split('\n')[0] !='admin':
            print urllib2.urlopen(req).read()
            break
    except:
        pass

반복문을 돌릴때 try, except를 쓴건 urllib2.urlopen으로 웹 페이지를 열 시에 404에러가 뜨면


아예 프로그램이 종료되기 때문에 에러가 안뜨는곳을 찾기 위해 try,except로 했습니다.


또 그냥 2/index였나 이런 페이지같을경우 location.replac로 원래 대문페이지인


moon.htm으로 돌아가게 하기에 이게 안 뜨면서, 2/admin/ 같이 url에 입력했을경우 404에러는 


아니지만 빈 페이지가 출력되기에, 돌아가라는 메시지가 뜨지 않으면서 빈 페이지도 아닌, 그런 페이지를


찾는 알고리즘으로 짰습니다. 출력 결과는 dirbuster과 유사해 보임.




'Python > 2.7 information' 카테고리의 다른 글

정규표현식 (파싱)  (0) 2014.11.20
소켓 파일 업로드 (webhacking.kr 37)  (0) 2014.10.25
소켓과 urllib2 속도차이  (2) 2014.08.21
쓰레드,세마포어 기초  (0) 2014.08.12
파이썬 소켓 기본.  (2) 2014.08.10