본문 바로가기
Webhaking/WebHaking CTF

[Webhaking.kr] old 23번

by Y06 2021. 11. 14.

처음 문제에 들어가면 보이는 화면이다. 텍스트를 입력할 수 있는 상자가 보이고 옆에 제출버튼이 있다.

아래를 보면 이러한 문장이 보이는데 여기서 우리는 문제의 힌트를 얻을 수 있다. script문을 실행시키는 것이 이 문제를 푸는 방법으로 보인다.

 

JAVASCRIPT문은 <script> 태그를 이용해서 html 문서에 직접 작성해 동작시킬 수 있다,

그렇다면 저 문장 전체를 입력하면 어떻게 될까?

no hack라는 문장이 나온다.

위에 URL을 살펴보자.

?code=<script>alert%281%29%3B<%2Fscript> 이 부분을 통해 일단 code라는 변수에 GET 방식으로 작성한 문자열이 전달되는 것을 알 수 있다. 혹시 문자열 필터링일까?

 

평범한 문자열을 삽입하였을 때는 문자열 필터링이 일어나지 않는 모습을 볼 수 있다.

URL 인코딩 방법을 사용해보자.

 

<%73%63%72%69%70%74>%61%6C%65%72%74(1);</%73%63%72%69%70%74>

다음의 문자열을 값으로 넣었다.

문자열이 그대로 출력되는 것을 보아 이 방법은 아니다.

띄어쓰기로 USL에 넣어 우회한다면 될까?

 

<%00s%00c%00r%00i%00p%00t%00>%00a%00l%00e%00r%00t%00(1);<%00/%00s%00 c%00r%00i%00p%00t%00>

다음의 값을 넣어보자.

정답이 아니었다.

이 방법도 아니라면 NULL 문자를 사이사이에 넣어서 우회하는 방법일까?

<s%00c%00r%00i%00p%00t>a%00l%00e%00r%00t(1);
위에 문자열을 입력하였다.

 

다음의 공격은 NULL Byte Injection 이라는 취약점이다.

 

NULL Byte Injection 공격이란? URL로 인코딩된 NULL Byte 문자(%00 or 0x00)를 입력 데이터에 이용한다. 악의적인 공격자에 의해 악성코드 파일을 업로드하여 시스템 권한을 획득하거나 주요 정보 파일이 유출될 가능성이 있다.

'Webhaking > WebHaking CTF' 카테고리의 다른 글

[Webhaking.kr] old 38번  (0) 2021.11.14
[Webhaking.kr] old 20번  (0) 2021.09.30
[Webhaking.kr] old 16번  (0) 2021.09.30
[Webhaking.kr] old 26번  (0) 2021.09.29
[Webhaking.kr] old 24번  (0) 2021.09.29