이번에는 XSS Stored공격에 대해 포스팅해보려고 한다. XSS공격이 주로 자바스크립트를 이용해 악의적인 코드로 변조해서 공격하는 방법이다. 특히 Stored공격은 게시판에 댓글, 게시글, 쪽지 등에 악성코드를 삽입해서 공격하는 기법이다.
1. XSS Stored 공격이란?
- 게시판과 같은 곳에 댓글, 게시글, 쪽지 등에 악성코드를 주입해서 공격하는 기법이다. 주로 자바스크립트를 활용한 공격이다.
- 자바스크립트를 활용해서 많은 공격이 이루어지고 있으며 보안레벨이 높아진다해도 html공격은 쉽게 막을 수가 없는 것이 특징이다.
- 공격자가 자바스크립트를 활용해 XSS공격을 하면 사용자도 모르게 그것을 클릭하게 되는데 세션, 쿠키정보를 뺄 수 있기 때문에 사용자 정보 등을 해킹이 가능하기 때문에 매우 위험한 공격이라고 볼 수 있다.
* XSS Stored 공격 실습
(1) XSS - Stored (Blog)
게시판을 이용한 공격이라고 설명했지만 SQL 인젝션에서 했었던 공격하고는 큰 차이는 없다. 화면에 보이는 것처럼 입력해주면 경고창에 1이라고 뜨면서 게시판에는 쿠키 정보들이 전부 기록되어 있는 것을 볼 수 있다. 이건 보안레벨이 가장 낮았을 때의 이야기지만 저런식으로 바로 쿠키가 노출되는 사이트는 사실상 보안을 전혀 안해놨다고 봐도 무방할정도로 위험하다.
가장 기본적인 XSS 공격방법이다. alert(1)을 줘서 저런식으로 1이라는 경고창이 뜨게 되는 것이다.
<대응방안>
보안레벨이 높을때는 xss_check_3를 사용해서 공격을 무력화 시켜서 그대로 소스코드를 반환하는 방식으로 하고 있지만 보안레벨이 낮을때는 entry로 그냥 반환해 쿠키값이 전부 노출되게 되어 있다. 보통 보안레벨이 높은 코드는 html을 활용한 공격도 무력화 시킬 수 있다. htmlspecialchar함수가 html을 활용한 공격을 무력화 시킬 수 있는 가장 안전한 코드이다.
보안레벨이 High일때 아까 쿠키값을 얻으려고 입력했었던 코드가 그대로 노출되서 쿠기값 확인이 불가능하다는 것을 볼 수 있다.
(2) XSS - Stored (User-Agent) 공격
User-Agent Switcher을 구글에서 검색해 다운받고 사진과 같이 입력해주고 ok버튼을 누른다. User-Agent공격방식도 해커들 사이에서 꽤 사용되고 있는 방법이기 때문에 알아두면 좋다.
프록시를 잡아서 입력한 값이 맞는지 userAgent를 확인해주고 Forward를 눌러주고 프록시를 off해준다.
그렇게 되면 사진과 같이 쿠키정보를 탈취할 수 있다. 하지만 보안레벨이 High로 되었을 시에는 쿠키정보가 나오지않고 입력한 코드가 그대로 출력됨을 볼 수 있을 것이다. 이 또한 대응방안은 위에서 작성한 것과 동일하다.
Xss-Stored 공격에 대해 살펴봤는데 여러가지 수법으로 공격할 수 있는 방법이기 때문에 항상 유의해야 하며 Xss 공격자체가 OWSAP10에서 3위를 차지할 정도로 매우 강력한 공격이기 때문에 보안레벨이 높은 함수들을 써서 방어하는 것이 최선이다. 본인도 XSS공격에 대해 좀 더 많이 살펴보고 사례들은 어떤것들이 있는지에 대해서도 꾸준히 공부해 볼 생각이다.
'웹해킹 > Bee-box' 카테고리의 다른 글
중요정보 변경 및 초기화, 상품가격조작 (0) | 2017.12.30 |
---|---|
Xss공격(Reflected) (0) | 2017.12.29 |
세션결함 (0) | 2017.12.29 |
인증결함 (0) | 2017.12.29 |
XML/XPath 인젝션 (0) | 2017.12.28 |