your mission is to inject <script>alert(1);</script>
부분이 힌트를 주고 있네요?
먼저 일단 <script>alert(1);</script> 를 제출해 봅시다.
흠 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 |