OverTheWire_Wargame Bandit

[ level24 -> level25 ]




자, 이번 문제는 드디어 cron에서 벗어났네요.

한 데몬이 30002포트로 listening 상태에 있다고 합니다. 만약 bandit24의 패스워드와 함께 4자리의 숫자 핀코드를 제대로 때려박아준다면 bandit25로 향하는 패스워드를 알려주겠다네요.

전형적인 브루트포싱 문제입니다. 파이썬으로 코드를 짜서 돌리도록 합시다.



먼저, nc로 반응이 어떠한지 확인을 해 보았습니다.

한 번 연결하면 계속 입력을 받는 구조군요. 실패 시 출력 값은 Fail! You did not supply enough data. Try again. 입니다.

그런줄 알았는데....

Fail 부분은 제대로 된 길이의 인자를 전송하지 않았을 때 발생하는 에러 출력값이었습니다.

제대로 된 문자열을 전송했을 경우의 실패 메시지는 Wrong! Please enter the correct pincode. 입니다.

이걸 기반으로 코드를 짜보도록 하겠습니다.



4중 for문으로 브루트포싱하였습니다. 맨 처음 기본 출력값이 있기 때문에 recv를 한번 해주었고, 그 이후에는 send와 recv를 번갈아가며 실행, 실패 메시지가 출력되지 않았을 경우 그 문자열을 뱉어내는 코드입니다.



bandit25로 향하는 문을 열어줄 패스워드를 뱉어냈습니다!

+ Recent posts