본문 바로가기

Dreamhack/WebHacking

[Dreamhack][Webhacking] BypassIF

728x90

1.문제 분석

  • 소스코드를 잘 봐야하는 문제
  • IF문을 Bypass하는 방법

2. 기본 아이디어

  1. guest의 key를 md5 암호화를 통해 구한다.
  2. admin 페이지로 들어가는 방법을 찾는다.
  3. admin페이지에서 admin의 KEY를 찾는다.

3.문제 풀이

 

이 문제의 페이지는 다음과 같다.

 

 

index page

 

 

코드를 보자.

 

 

code 1

 

code 2

 

위 코드를 보면

1. ADMIN과 guest의 key는 md5를 통해 암호화 되었다는 것을 알 수 있다.

 

2. flag의 md5해시값이 admin의 key이다.

 

3. /flag에서 key뿐만 아니라 cmd_input도 받아온다.

 

4. 단, cmd_input에는 제한이 걸려있다.

 

그렇다면 'guest'를 md5로 암호화해서 접속해보자.

 

guest

 

바로 burp suite를 통해 요청을 가로채서 cmd_input도 넣어보자.

 

cmd_input

 

admin

 

 

admin페이지로 접속됐다.

 

여기서 리눅스 명령어 찾느라고 삽질좀 했다.

 

근데 그건 낚시니까 주의하자

 

코드를 다시 보면

 

timeout

 

1. cmd 명령어에서 timeout이 발생하면 내 키를 보여준다.

 

2. 근데 난 지금 admin페이지 즉 flag.html로 접속해있다.

 

그럼 여기서 timeout만 내주면 admin의 Key를 알 수 있고, flag를 얻을 수 있겠다.

 

sleep

 

따라서 10초만 재워주면 키를 얻을 수 있으니

 

key

 

이제 다시 index 페이지에서 key를 넣어주면 flag를 얻을 수 있다.

 

728x90