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 |