webhacking.kr - old 38 (Log Injection)
문제 화면을 보면 'LOG INJECTION'이라고 나와있다.
코드를 한번 봐보자.
먼저 admin.php 한번 접속해보자.
admin.php를 접속했더니 admin으로 로그인이 필요하다고 한다.
그럼 전 페이지로 돌아가 Login 실험을 해보자.
아무렇게나 넣어봤더니 출력해 주는 거는
'현재 ip:입력한 이름' 이런 식으로 출력되었다.
앞에서 봤듯이 줄 바꿈이 발생하고 있다
줄이 바뀌고 있다는 거는 새로운 줄이 시작하는 거 이기도 하다.
그러면 즉 새 줄문자로 구분되어 있다고 말할 수 있다.
그렇다면 로그에 'admin'이라는 문자열이 생기고 그 옆 ip 에는 자신의 ip를 등록하게끔 만들면 된다는 것.
그냥 'admin'이라고 입력하면
이렇게 뜨고 'log viewer'에는 남지 않는다.
일단 줄 바꿈을 위해서는 'input' 태그를 바꿔야 한다.
'input' 태그는 한 줄 문자 편집이기 때문이다.
다중 행 입력이 가능한 'textarea' 태그를 쓰도록 하자.
그리고 개행문자인 \r,\n를 넣도록 하자
'\r' [캐리지 리턴(Carriage return)] : 현재 위치를 행의 시작 위치로 이동시키는 문자.
'\n' [줄 바꿈(line feed)] : 말 그대로 줄 바꿈
자기 ip입력:admin
태그를 'textarea'로 바꿔서 우리가 아는 역슬래시(역사선) 기호가 아니지만 같은 역슬래쉬라서 잘 적용되는 거 같다.