본문 바로가기
Wargame Write-Up/Webhacking.kr

[Webhacking.kr] (Web) 23번 풀이 (old-23)

by snwo 2020. 4. 3.

xss 공격을 하라고 한다. <script>alert(1);</script> 그대로 입력해보자.


 no hack이다. 필터링하는문자가 있을것같다. 확인해보면,


하나씩 입력해보면 태그는 필터링하지않는것같다.


왼쪽은 <h1>hello</h1> 을 입력했을때다. 어떤문자를 필터링하나 하나하나 입력해봤다.

 

<h1>h</h1> -> 통과

<h1>he</h1> -> no hack

 

이렇게 뜨는걸 봐서는 문자열이 두글자이상일때 필터링하는것같다.

문자열은 NULL문자 로 우회할수있다.


이런식으로 문자사이사이에 %00 (NULL문자 URL인코딩) 을 넣어주면,

문자가 붙어서 출력되는걸 볼 수 있다.


>>> a="<script>alert(1);</script"
>>> ss=""
>>> for i in range(len(a)):
           ss+=a[i]+"%00"
>>> ss
'<%00s%00c%00r%00i%00p%00t%00>%00a%00l%00e%00r%00t%00(%001%00)%00;%00<%00/%00s%00c%00r%00i%00p%00t%00>%00'

 

python 인터프리터로 사이사이에 NULL 문자를 넣어주는 스크립트를 짰다. 완성된문자를 넣어주면,


alert(1) 이 실행되면서 문제가 풀린다!