KISA 해킹 방어 훈련장 문제에 대한 풀이입니다. 


Web Level2 문제를 보면 아래와 같습니다. 


문제 제목 : 웹 개발자의 허술한 보안 코딩을 우회 하

라.


문제 설명 : 웹 어플리케이션 개발자가 XSS에 대한 보

안을 완벽히 하지 못하였다. 현재 적용된 필터링 룰을 

우회하여 XSS에 대한 취약점을 찾아 보아라.



문제 풀기를 클릭하면 다음 사이트로 이동합니다. 


http://221.143.48.110/web/level02/web_application.php




추천은 저를 춤추게 합니다 ^^



해당 사이트에 들어가니 다음과 같은 문구와 함께 입력창이 보입니다. 


웹 어플리케이션 개발자가 XSS에 대한 보안을 완벽히 하지 못하였다.

현재 적용된 필터링 룰을 우회하여 XSS에 대한 취약점을 찾아보아라.

조건) <script> 구문 이용. alert도 반드시 들어 가야됨.

EX) <script>alert('test')</script>



우선 주어진 예제 문구를 넣어봅시다. 



예상은 했지만 역시나 차단 됩니다. 



이번에는 특수 기호에 대한 필터링 기능을 확인 해보기 위해 아래처럼 변경해서 다시 시도해봅시다. 


&lt;script&gt;alert('test')&lt;/script&gt;



이번에는 차단이 되진 않지만 뭔가 다른 결과가 보여집니다. 


<>alert('test')</>


입력했던것과 비교해 보니 script라는 문자열을 필터링 하는것 같은 느낌이 드네요. 


그렇다면 script라는 문자열을 교묘하게 2번씩 써주는 방법으로 다시 시도해봅시다. 


&lt;sscriptcript&gt;alert('test')&lt;/sscriptcript&gt;


의도한 바는 XSS 필터링에 의해서 script라는 문구가 제거되고 나면 sscriptcript 처럼 동작해서 결국 script라는 문구가 남게 되는 겁니다. 


짜잔~

간단하게 XSS 보안 취약점을 찾았네요. 



이렇게 2단계는 생각보다 수월하게 풀 수 있답니다. 


Posted by KT한
,