728x90
1.문제 분석
- 소스코드를 잘 봐야하는 문제
- IF문을 Bypass하는 방법
2. 기본 아이디어
- guest의 key를 md5 암호화를 통해 구한다.
- admin 페이지로 들어가는 방법을 찾는다.
- admin페이지에서 admin의 KEY를 찾는다.
3.문제 풀이
이 문제의 페이지는 다음과 같다.
코드를 보자.
위 코드를 보면
1. ADMIN과 guest의 key는 md5를 통해 암호화 되었다는 것을 알 수 있다.
2. flag의 md5해시값이 admin의 key이다.
3. /flag에서 key뿐만 아니라 cmd_input도 받아온다.
4. 단, cmd_input에는 제한이 걸려있다.
그렇다면 'guest'를 md5로 암호화해서 접속해보자.
바로 burp suite를 통해 요청을 가로채서 cmd_input도 넣어보자.
admin페이지로 접속됐다.
여기서 리눅스 명령어 찾느라고 삽질좀 했다.
근데 그건 낚시니까 주의하자
코드를 다시 보면
1. cmd 명령어에서 timeout이 발생하면 내 키를 보여준다.
2. 근데 난 지금 admin페이지 즉 flag.html로 접속해있다.
그럼 여기서 timeout만 내주면 admin의 Key를 알 수 있고, flag를 얻을 수 있겠다.
따라서 10초만 재워주면 키를 얻을 수 있으니
이제 다시 index 페이지에서 key를 넣어주면 flag를 얻을 수 있다.
728x90