보안 공부/webhacking.kr

webhacking.kr 23번 풀이

sh1256 2021. 12. 7. 22:37
728x90

첫화면

your mission is to inject <script>alert(1);</script>

부분이 힌트를 주고 있네요?

먼저 일단 <script>alert(1);</script> 를 제출해 봅시다. 

&amp;lt;script&amp;gt;alert(1);&amp;lt;/script&amp;gt;제출결과

흠 no hack이라고 뜨는군요 무언가 우회를 해야할 거 같네요

일단 그러면 여러가지를 넣어보고 뭘 넣으면 'no hack'이라고 뜨는지 알아볼까요

 

<>';() --> 그대로 출력

script, alert --> no hack

SCRIPT, ALERT --> no hack

 

이상하게 영어만 걸리는거 같네요 아무 영어나 넣어보죠

 

aaa --> no hack

aa --> no hack

a --> a

t>q --> t>q

 

드디어 찾았습니다. 영어가 2글자 이상 연속이면 무조건 걸리는 거였네요

 

URL로 인코딩해서 넣어봤습니다. (a를 인코딩하면 %61(아스키코드 사용))

 

%61%61 --> %61%61

 

그대로 나오는군요? 그런데 이때 URL을 봤더니 ?code=%2561 로 '%'자체가 인코딩 되고 61은 되지 않더군요

그래서 URL 뒤에 바로  ?code=%61%61 을 넣어보았습니다.  그랬더니 'no hack'이라고 뜨네요

아마도 aa로 받아들이고 aa가 연속된 알파벳이라서 그런 거 같습니다. 

 

아 그러면 아무런 것도 없는 NULL 문자를 사용해 볼까요?

NULL 문자는 %00으로 인코딩 됩니다. 

그럼 ?code=%61%00%61 을 입력해 봅시다.

오 정상적으로 aa가 잘 출력되네요!!

 

그럼 NULL 문자를 이용해서 <script>alert(1);</script> 부분을 새롭게 만들어 줄까요?

영어와 영어 사이에만 %00을 입력하면 됩니다. 

(반드시 URL 뒤에 ?code=~~~로 입력해 주셔야 합니다. 빈칸에 제출하면 %00이 %2500으로 URL인코딩됩니다.)

 

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

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

 

이렇게 말이죠!

 

성공!

'보안 공부 > webhacking.kr' 카테고리의 다른 글

webhacking.kr 19번 풀이  (0) 2021.12.13
webhacking.kr 58번 풀이  (0) 2021.12.13
webhacking.kr 54번 풀이  (0) 2021.12.07
webhacking.kr 39번 풀이  (0) 2021.12.06
webhacking.kr 16번 풀이  (0) 2021.12.06