webhacking/client
webhacking.kr 12번
qkqhxla1
2014. 8. 31. 13:51
크롬 개발자도구에 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>
로 잘 생성됨. 제대로 동작도 함..