Wargame/Webhacking.kr

Webhacking.kr old 38번 문제 풀이

esyeonge 2021. 4. 10. 15:07

38번을 클릭하면 위와 같은 화면이 뜬다. LOG Inejction 문제라고 알려주고 있다.

 

소스 코드를 보면 admin page와 연결된 admin.php가 있음을 알 수 있다. URL에 입력하여 이동하자.

admin.php 페이지로 이동하면 아무것도 없는 것을 볼 수 있다.

아마 이전 페이지의 입력창에 값을 입력해야 변화가 있을 것 같다.

 

이전 페이지에서 admin을 입력해보았더니, 'you are not admin'이라는 문자가 떴다.

이 외에도 1, 2, 3이라는 숫자를 입력했더니 log viewer에서 이를 볼 수 있었다.

 

log viewer에 기록된 로그를 보면 IP주소:입력한 값이 떠 있었다.

이를 바탕으로 SQL Injection처럼 2문장을 한 번에 써서 보내면 문제가 풀릴 것이라고 예상했다.

 

즉,

아무입력값 연결용단어 ip주소:admin 을 입력하면 뒤의 ip주소:admin이 들어가면서

내 아이피 주소가 admin으로 로그에 남게 되고

이를 바탕으로 admin으로 인식 될 것이라고 예상했다.

 

처음엔 SQL Injection처럼 or를 입력해보았는데 되지 않았다.

그래서 로그를 기록할 때 줄바꿈이 일어나고, 줄바꿈으로 로그를 구분한다는 것을 알게 되었다.

그렇기 때문에 개행문자인 \n을 아무입력값과 ip주소:admin 사이에 넣은 후, (윈도우에서는 \r\n)

이를 입력창에 입력하면 두 줄로 로그에 기록된다고 한다.

 

근데 자꾸만 . . 한 줄로 들어갔다.

 

그래서 그냥 input 태그를 textarea로 바꾼 후, 직접 엔터를 쳐서 넘겨주었다.

 

그 후 admin.php 페이지에 접근하니 alert 창이 뜨면서 문제가 풀렸다!