728x90
반응형

100점인 38번 문제를 풀어보자.

소스코드에 주석처리되어 있는 admin.php페이지로 이동해보자.

admin으로 로그인해야 된다고 쓰여 있는데, admin으로 시도해보았을 때 'you are not admin'을 반환한다.

로그가 위에서 아래로 출력한 순서대로 log viewer에 출력되는 것을 보니 CRLF Injection이 가능할 것이다.

- CRLF Injection?

CRLF라는 용어는 캐리지 리턴 (ASCII 13, \r) 줄 바꿈 (ASCII 10, \n)을 나타낸다. 그러나 오늘날 인기있는 운영 체제에서는 라인의 종료를 언급하는 데 사용된다. 예를 들어, Windows에서는 CR과 LF가 줄의 끝을 기록해야하지만 Linux / UNIX에서는 LF 만 필요하다. HTTP 프로토콜에서 CR-LF 시퀀스는 항상 라인을 종료하는 데 사용된다. CRLF 주입 공격은 사용자가 CRLF를 애플리케이션에 제출할 때 발생한다. 이는 HTTP 매개 변수 또는 URL을 수정하여 가장 일반적으로 수행된다.

 

이제 문제로 돌아가 CRLF Injection을 이용하기 위해서는

input 태그 대신 textarea 태그를 이용하기로 하자. textarea태그는 여러 줄의 텍스트를 입력할 수 있다.

log viewer에서 로그가 쌓이는 형식이 [ip주소]:[id] 이므로 guest\r\n내 IP주소:admin으로 입력해보자.

첫 줄은 guest 계정으로 로그인 되지만, 두 번째에는 admin 계정으로 로그인 할 수있다.

 

728x90
반응형

'CTF & WarGame > webhacking.kr' 카테고리의 다른 글

[webhacking.kr] 40번 문제  (0) 2020.03.14
[webhacking.kr] 39번 문제  (0) 2020.03.14
[webhacking.kr] 37번 문제  (0) 2020.03.14
[webhacking.kr] 36번 문제  (0) 2020.03.14
[webhacking.kr] 35번 문제  (0) 2020.03.13

+ Recent posts