[webhacking.kr] Challenge(old)_38[100]
이번 문제는
해결해야 되는 부분 : LOG INJECTION이라고 한다. 로그를 조작해서 admin 권한을 따내라는 것 같다.
이런 식으로 로그가 쫙 뜬다.
폼에 admin이라고 입력해 보았는데 admin이 아니라고 뜬다.
별에 별 방법을 시도했는데 하나 의문점이 생겼다.
폼에 admin 입력하면 내 아이피:admin은 안 뜬다. 그렇다면 그렇게 해주면 될 듯?
%0a 115.91.214.2:admin
test'\\n'115.91.214.2:admin
test '%5cn' 115.91.214.2:admin
test%0b115.91.214.2:admin
test %22%5cn%22
<br> <br /> \n %0a 다 안 먹힌다.
115.91.214.2:admin
\n115.91.214.2:admin
%26%23x003C;pre%26%23x003E;1%26%23x003C;/pre%26%23x003E;115.91.214.2:admin
0x5c0x6e115.91.214.2:admin
%, < 다 안 먹힌다..
여러 가지 다른 방법을 다 시도해봤지만 해결점을 찾지를 못했다.
(http://mwultong.blogspot.com/2006/12/ascii-code-of-newline-cr-lf.html)
우선 \n이 먹히지 않은 이유를 근본적으로 보면은 \n라고 입력했을 때 기대효과는 16진수로 \x0d\x0a에 해당하는 개행 문자가 들어가기를 원하는데 \n을 입력하고 패킷을 보면 그렇게 날아가지는 않고 \(\x5c)n(\x6e) 16진수가 따로 날아간다.
그래서 \n라고 입력해도 그 자체를 개행으로 안 보고 문자열 각각으로 본다. 그래서 패킷을 보면서 직접 0d0a를 입력해주기로 했다.
피들러를 이용해서 패킷을 잡아주었다.
패킷의 HexView를 보니 내가 입력했던 값이 들어가 있다.
개행 문자를 헥스로 직접 한 땀 한 땀 넣어주었다.
그러고 나서 나의 아이피:admin을 넣어주었다.
TextView로 보니 개행 처리가 잘 되어있는 것을 확인했다.
클리어!! 되게 시간이 많이 쓴 문제다. 좀 까다로웠다..