본문 바로가기
Security

XSS

by Hide­ 2007. 6. 14.
반응형

자바스크립트에서 //도 문자열로 묶을 수 있습니다.


var str = /webhack/;

alert(str);


/webhack/ 이라는 문자열이 넘어오죠..


한가지 활용방법은..


location.href.replace(/.+/g, /http:\\도메인\hack\page.php\\/).substring(1);


따옴표를 안쓰기위해 이런식으로 아무 문자열이나 가지고 replace로 전체 치원하는 방법으로 쓰일수도 있겠습니다.


결과적으로 http://도메인/hack/page.php// 라는 문자열이 넘어오겠죠..


굳이 이경우라면 String.fromCharCode를 활용하면 더 편하겠지만요 ^^;


여기까지는 정보이고.. 이제 질문, 이 방법 말고 자바스크립트내에서 또 어떤 방법으로 문자열을 묶을 수 있을까요?


워낙 포용력이 넘처나는 언어인지라 뭔가 다른 방법도 많을것도 같은데..




그리고 이번엔 HTML에서.. 어트리뷰트의 값을 묶을때 '와 "말고도 `로도 묶을 수 있습니다.

 

<img onerror=`alert('XSS')` /> 이것도 허용되는 것이죠.


이 경우라면 따옴표를 안쓰는 방법도 가능하겠네요..


역시 여기까지는 정보이고.. 이제 또 질문, 이 방법 말고 HTML내에서 또 어떤 방법으로 어트리뷰트 값을 묶을 수 있을까요?


워낙 개념없는 HTML이라 다른 것도 또 있을 것 같기도 한데..




마지막으로 양심있게 이번엔 정말 질문 없는 팁 한가지!

많은 사이트에서 값이 유출되는 것을 방지하기위해 ?와 &를 필터링 합니다. 이럴경우..

 

http://도메인/hack/page.php/넘길데이터


이렇게 단순히 ?와 &가 아닌 /로 데이터를 넘길 수 있습니다. 물론 받는 쪽에서는 당연히 GET으로 받을 수는 없고


현재 페이지 주소를 가지고 받아야겠죠.

'Security' 카테고리의 다른 글

How to way Bypass CRC Check  (0) 2007.07.09
Shield from DLL Injection  (0) 2007.07.09
KISA 2007 보고서  (0) 2007.06.14
Anti Game Hacking 의 원리, 그리고 Codes  (0) 2007.04.01
Stack BOF  (0) 2007.04.01