반응형
소스보기를 하면
<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.php에 들어가보니 내가 저 창에서 입력한 값들이 일렬로 나열되어 있다.
예전에, Null Byte Injection이라고.. 문자 사이에 널바이트를 집어넣어서 필터링같은걸 우회하는 방법이 있었는데
(원리는 솔직히 지금도 아직도 검색해봐도 잘 모르겠음.. Null Byte는 문자열의 끝을 알리므로 당연히 출력이나 문자열 인식도 거기서 마쳐야하는데 널문자를 사이에 끼워넣어도 필터링은 우회되나 출력같은건 문제없이 끝까지 잘 됌..)
해당 방법을 사용해서 a%00dmin을 입력해봤다.
결과는 정상적으로 admin값이 잘 찍히는데, 문제가 풀렸다고 나오진 않는다. 이 방법이 아닌가보다..
그럼 다른 방법인 개행방법을 생각해봐야한다.
CRLF 또는 LF 인젝션
윈도우 OS에서는 개행으로 CRLF 방식(Carrige Return + Line Feed)을 사용하고 맥과 리눅스 OS에서는 개행을 LF 방식으로 사용한다.
Carrige Return : 커서를 줄의 맨 앞으로 이동
Line Feed : 다음줄로 이동
BurpSuite를 통해 LF인 %0A를 넘겨주어봤지만 작동하지 않길래 CRLF인 %0D%0A를 넘겨주었더니 작동한다.
따라서 아무값%0D%0A본인의아이피:admin을 BurpSuite 같은 프록시 툴로 넘겨주거나
크롬의 '검사' 툴을 이용해서 input type="text"를 textarea 태그로 변경해줘서 직접 엔터를 쳐서 값을 넘겨주면 된다.
반응형
'[웹해킹] > [Webhacking.kr]' 카테고리의 다른 글
[Webhacking.kr] 40번 (0) | 2020.11.05 |
---|---|
[Webhacking.kr] 39번 (0) | 2020.11.03 |
[Webhacking.kr] 37번 (0) | 2020.10.28 |
[Webhacking.kr] 36번 (0) | 2020.10.28 |
[Webhacking.kr] 35번 (0) | 2020.10.24 |