Dominic Repo

[webhacking.kr] Challenge(old)_38[100] 본문

Network/Webhacking.kr

[webhacking.kr] Challenge(old)_38[100]

DominicS 2019. 10. 14. 18:32

이번 문제는 

해결해야 되는 부분 : 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 다 안 먹힌다. 

&#13;&#10;115.91.214.2:admin

&#92;&#110;115.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로 보니 개행 처리가 잘 되어있는 것을 확인했다. 

클리어!! 되게 시간이 많이 쓴 문제다. 좀 까다로웠다..