이번에는 webhacking.kr의 old-23번 문제입니다. php를 이용하는 문제고, 200점이 배점되어 있습니다.
처음 들어가면 위와 같은 화면이 나옵니다. input form이 보이고, 제 목표는 script 태그를 주입하는 거라고 합니다.
소스 코드를 보겠습니다.
소스 코드만을 보고 해결법을 알 수 없을 것 같습니다. 그냥 무작정 값들을 대입해 보겠습니다.
12345, a, b, <, <>, !!, #, -- 등은 필터링 되지 않고 그대로 출력됩니다.
aa, bb, flag, hack, flag.txt 등은 필터링 되어 'no hack'이라는 문구로 출력됩니다.
추론하여 봤을 때 숫자, 특수문자가 아닌 일반 문자(a, b, ...)를 연속으로 입력하면 필터링 되는 것 같습니다.
그럼 html 태그인 h1 태그를 삽입하여 보겠습니다
h1 태그는 필터링되지 않는 모습입니다.
연속으로 입력하면 필터링 되므로, 연속으로 입력하지 않고 공백을 추가하면 될 것 같습니다.
<s c r i p t>a l e r t (1);</s c r i p t>를 대입하니 해결되지 않았습니다.
검색해보니 'Null Byte Injection'이라는 취약점이 존재하였습니다.
URL로 인코딩 된 Null Byte 문자 (%00 또는 0x00)을 입력 데이터에 이용하여 공격하는 방법입니다.
글자 사이에 공백이 아닌 Null Byte 문자를 넣어보겠습니다.
<s%00c%00r%00i%00p%00t>a%00l%00e%00r%00t(1);</s%00c%00r%00i%00p%00t>
소스 코드를 보면 GET 방식으로 데이터를 넘겨주고, input 태그의 name은 code 이므로 URL을 조작합니다.
위와 같이 입력해주면 잠시 후 alert(1)이 실행되면서 문제가 해결됩니다.
'웹 해킹 (Web) > webhacking.kr' 카테고리의 다른 글
[webhacking.kr] 웹해킹.kr old-33번 (200) (0) | 2020.09.19 |
---|---|
[webhacking.kr] 웹해킹.kr old-25번 (150) (0) | 2020.09.19 |
[webhacking.kr] 웹해킹.kr old-26번 (100) (0) | 2020.09.19 |
[webhacking.kr] 웹해킹.kr old-24번 (100) (0) | 2020.09.19 |
[webhacking.kr] 웹해킹.kr old-1번 (200) (0) | 2020.09.19 |