크롬 개발자도구에 eval로 실행하는 부분만 빼고 돌려보면 저렇게 나옴.
대충 소스 살펴보면 아래의 if 내부의 ck가 뒤의 복잡한 부분이 맞으면 alert으로 답을 출력해주는거같음.
ck는 url의 =의 위치.
뒷부분만 추려서 document.write로 화면에 출력해보면 =youaregod~~~~~~~!
출력. ck(url에서 =의 위치)와 저 문자열이 같아야 하므로 뒤에 =youaregod~~~~~~~!를 붙여주면
통과
******
파이썬으로 위의 악성코드 생성기를 구현해보았음.(심심해서)
javascript = "alert('xss!');"
strs = """<script>
wtf=String.fromCharCode("""
for i in range(0,len(javascript)):
strs += str(ord(javascript[i]))
if i==len(javascript)-1:
break;
strs += ','
strs += """);
eval(wtf);
</script>"""
print strs
돌려보면
<script>
wtf=String.fromCharCode(97,108,101,114,116,40,39,120,115,115,33,39,41,59);
eval(wtf);
</script>
로 잘 생성됨. 제대로 동작도 함..
'webhacking > client' 카테고리의 다른 글
wargame.kr QR CODE PUZZLE (1) | 2014.09.28 |
---|---|
codeshell.kr readonly (0) | 2014.09.24 |
webhacking.kr 5번 (0) | 2014.08.19 |
webhacking.kr 12번 (0) | 2014.08.15 |
webhacking.kr 1번. (0) | 2014.08.11 |