본문 바로가기
웹 해킹/Webhacking.kr

[Webhacking.kr] old-38

by L3m0n S0ju 2021. 9. 5.

 

 

 

 

문제 서버에 접속하면 위와 같이 인젝션 공격을 유도하는 입력창이 있습니다. 아래 코드를 보면 admin.php라는 페이지가 존재하는 것을 알 수 있습니다.

 

 

<html><head>
<title>Challenge 38</title>
</head>
<body>
<h1>LOG INJECTION</h1>
<form method="post" action="index.php">
<input type="text" name="id" size="20">
<input type="submit" value="Login">
</form>
<!-- <a href=admin.php>admin page</a> -->


</body></html>

 

 

 

 


당연히 그냥은 admin 계정으로 로그인 할 수 없습니다.

 

 

 

 


코드에 적혀잇떤 admin.php에 접근하면 이전에 입력한 값들이 로그로 기록되어 있습니다.

 

 

 

 

 


이번 문제를 풀기위해서는 CRLF 인젝션이라는 기법을 사용해야합니다. CRLF는 HTTP 패킷에 개행문자 \n, \r을 주입하여 파라미터를 조작하는 공격입니다. CRLF에서 CR은 Carrage Return 으로 커서를 해당 라인의 첫번째 인덱스로 옮기는 역할을 합니다. 예를 들어서 아래 코드를 실행하면 HelloWorld가 출력되는게 아니라 Hello가 덮어씌어져서 World만 출력되는 현상이 발생한다.

 

print Hello

print \r

print World

 

 

 

 


CRLF 인젝션을 위해서 코드에서 input을 textarea로 수정해준다.


<input type="text" name="id" size="20">   =>   <textarea type="text" name="id" size="20">

 

입력창이 살짝 커진다. 해당 입력창에 아래와 같이 입력하면 플래그를 획득할 수 있습니다.

 

hello
{ip주소}:admin

 

 

 

 


플래그

'웹 해킹 > Webhacking.kr' 카테고리의 다른 글

[Webhacking.kr] old-39  (0) 2021.09.07
[Webhacking.kr] old-54  (0) 2021.09.06
[Webhacking.kr] old-26  (0) 2021.09.05
[Webhacking.kr] old-24  (0) 2021.09.05
[Webhacking.kr] old-17  (0) 2021.09.05

댓글