본문 바로가기

웹 해킹 (Web)/webhacking.kr

[webhacking.kr] 웹해킹.kr old-23번 (200)

728x90
반응형

이번에는 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)이 실행되면서 문제가 해결됩니다.

 

 

 

728x90
반응형