본문 바로가기

Computer/0x00 정보보안

[OWASP WebGoat] Stored XSS Attacks 문제풀이

[OWASP WebGoat] Stored XSS Attacks 문제풀이





 근에 Wargame에 집중하고 있습니다. 다른분들은 wargame 부터 공부하면서 필요한 지식을 흡수 하는

형태로 공부를 하시는것 같은데, 저는 기반지식부터 닦고 오느라고 꾀 오래 걸린것 같습니다.

장단점이 있는것 같습니다. 이제부터라도 워게임 많이 접해 보면서 모의해킹 실력을 끌어 올려봐야죠 ㅎㅎ

그리고 짬날때 마다 이론공부를 하면서 경험치를 많이 쌓아서 렙업 해야겠습니다. 하면 할수록 재미있거든요 


이번 시간은 OWASP 웹 취약점을 모의해킹 게임을 통해 보겠습니다.

WebGoat 에서 Stored XSS Attacks 문제 풀이 입니다.




 Stored XSS 란 무엇 인가요?



[ 그림: Stored XSS Attacks 에 대한 개요 ]




워게임 풀기에 앞서, XSS(Cross Site Scripting): 크로스 사이트 스크리팅 공격에 대한 개념을 이해 하셔야

합니다. 여러분들에게 설명 드리기 위해 위의 그림을 직접 만들었습니다. ^^ 박수 짝짝 


XSS 공격은 크게 2가지로 나뉩니다.

1. Stored XSS Attack

2. Reflected XSS Attack 



Stored XSS Attack 은 게시판등에 저장되어 실행되는 형태 입니다.

그래서 '저장 크로스 사이트 스크립팅 공격' 입니다.


Reflected XSS Attack 은,  '반사 크로스 사이트 스크립팅 공격' 으로

저장되지 않고 스크립트가 실행되는 것 이라고 할 수 있습니다.

화면에 출력되는거 반사XSS 공격의 대상 입니다. (ex: 다시입력해주세요, xx님 환영합니다.) 


이번 시간은 'Stored XSS Attacks' 이기 떄문에 위의 그림과 같이 설명 드릴 수 있습니다.
해커가 악성스크립트로 작성된 게시물을 게시판에 올려서 저장 시키고 타겟(관리자)가
클릭하면 실행되며 쿠키가 해커에게 전송되어서 그것을 위조해서 관리자 권한을 획득하는 것 입니다.






[OWASP WebGoat] Stored XSS Attacks 문제풀이




webgoat v5.3 이구요. 로그인 ID: guest   PW: guest 입니다.

그리고 왼쪽에서 Stored XSS Attacks 를 클릭 해 줍니다. 그러면 문제가 나옵니다.


음...문제는 해석 하실 수 있는 분들은 해석 하시면 되구요.

구글번역기 돌리면 다음과 같이 해석되어 집니다.

(p.s 구글번역은 영어 -> 일본어 -> 한국어 순으로 번역하면 조금 더 잘 번역되어 집니다 ) 



[Google 번역]


그것은 항상 특히 모든 입력 나중에 OS 명령, 스크립트, 데이터베이스 쿼리의 매개 변수로 사용되는 그 입력을 청소할 것을 권장합니다. 이것은 영원히 응용 프로그램의 어딘가에 저장되는 콘텐츠를 시청하기 위해 특히 중요하다. 사용자는 사용자의 메시지를 검색 할 때 다른 사용자가 원하지 않는 페이지 나 원치 않는 내용을로드 할 수 있으며, 메시지의 내용을 만들 수 없도록하십시오.




간단하게 아래와 같은 형식으로 스크립트를 만들어 등록 해줍니다.

<script>alert('Ha hacked'); </script>









그리고 저장한 다음에 하단에 게시물이 생기면 '클릭' 해줍니다.






게시물을 클릭하자 작성한 스크립트과 실행되며 다음과 메세지를 출력하며 미션을 통과한 것을

확인 할 수 있습니다.


"축하드립니다. 당신이 성공적으로 이 과정을 완료했습니다."








마무리



국내 유명 CMS 업체의 경우 해당 XSS 공격에 대해 아직도 취약하며, 이에 대한 방어법으로는

스크립트 필터링을 통해 어느정도 방어 할 수 있습니다.

사용자가 입력 가능한 문자를 정해 놓은후에 그 문자열이 아니면 모두 필터링 하는 식으로

프로그래밍을 해놓으면 XSS 취약점에 사용되는 특수문자를 초기에 진압 할 수 있는 장점이

있습니다.