웹보안
xss(Cross Site Scripting)
방어
xss막는방법
html script 구문 사용 하지 못하게 서버2000 에서 c: inetpub/webhack/board/board_wirte.asp
검사하는부분에 value.replace(/script.,"") 이부분이 스크립트 언어를 공백으로 처리하는것입니다.
replace(/script/,""); script 라는 문자를 "" 공백으로 바꿔주는 기능입니다.
이렇게
<script>
alert("XSS!!");
</script>
스크립트 언어를 작성해도 공백으로 치환하기 때문에 xss 공격을 할수 없게됩니다.
하지만!
<Script>
alert("XSS!!");
</Script>
이렇게 스크립트를 대문자로 작성하면 xss공격을 시도할수 있습니다.
하지만 대문자 막기
서버2000 에서 c: inetpub/webhack/board/board_wirte.asp
document.write_form.content.value=document.write_form.content.value.replace(/script/i,"");
이렇게 i를 추가해주시면 대문자로 바꿔도 다시 스크립트 언어를 사용할수 없게 됩니다.
하지만
<Scriptscript>
alert("XSS!!");
</Script>
이렇게 중복작성 하시면 다시 스크립트 언어를 사용할수 있게 되는데요 이것또한
c: inetpub/webhack/board/board_wirte.asp 여기 들어가서
document.write_form.content.value=document.write_form.content.value.replace(/script/i,g,"");
g옵션을 추가하면 중복을 막을수 있습니다.
<sscriptcript>
alert("XSS!!");
</sscriptcript>
다시 이렇게 쓰시면 중간에 스크립트가 공백으로 치환되므로 다시 스크립트 언어를 작성할수 있습니다.
하지만 스크립트라는 문자를 아예 다른것으로 치환하면
서버2000 에서 c: inetpub/webhack/board/board_wirte.asp
document.write_form.content.value=document.write_form.content.value.replace(/script/i,g,"a");
다시 스크립트 언어를 작성할수 없지만 이 외에도 인코딩 방식 등등 해킹과 보안은 끝이없는 싸움이라고
생각합니다.