1. Persist XSS 공격이란?
- 지속 가능형 XSS 공격, Stored XSS 공격이라고도 불림
- 데이터베이스에 기록되어 지속적으로 노출하는 방식의 공격
- 주로 게시판, 방명록, 댓글에서 발생
2. 스노트 규칙을 활용한 Persist XSS 공격 탐지 실습
그림 2-1 local.rules
Security Onion을 실행해 /etc/nsm/rules 폴더로 이동한 후 vim을 활용해 local.rules를 실행한다.
그림 2-2 스노트 규칙 작성
local.rules 파일에 스노트 규칙을 작성한다. 외부 아이피 주소에서 웹 서버 주소로 전달해주며 메시지는 Persistent XSS in POST로 출력되며 script%3e와 관련된 내용과 클라이언트 바디에서 탐지되고, 공격 형태는 web-application-attack이다.
그림 2-3 rule-update
local.rules 파일 저장 후 스노트 규칙을 업데이트한다. Fail이 출력되면 스노트 규칙 적용이 안되기 때문에 OK가 나올때까지 스노트 규칙을 수정 해야 한다.
그림 2-4 rule-set 업데이트
rule-update만 하게 되도 스노트 룰 적용이 안될 수 있기 때문에 rule-set도 같이 업데이트 한다. 모두 OK가 나오면 스노트 규칙이 정상적으로 적용된 것이다.
그림 2-5 sguil 실행
스노트 규칙 적용 후 sguil을 실행한다. sguil을 통해 Persist XSS 공격 취약점이 탐지된다.
그림 2-6 XSS 공격 구문
bee-box에서 HTML Injection - stored (Blog)를 실행해 <script>alert("XSS!")</script>를 입력하고 실행한다.
그림 2-7 sguil 탐지
Security Onion으로 돌아와 Sguil을 보면 그림 2-6에서 실행했던 XSS 공격이 탐지되었음을 볼 수 있다.
그림 2-8 공격 패턴 탐지
자세한 탐지 기록을 확인해보면 script%3e가 그림 2-2에서 적용한 스노트 규칙에 따라 탐지가 잘 되었음을 볼 수 있다. 그림 2-6에서 보낸 공격 정보를 Sguil에서 탐지한 것이다.
3. XSS 공격의 대표적인 로그 패턴
1. ><script>alert(1);</script>
2. "><script>alert(1);</script>
3. ‘”<script>alert(1);</script>
4. <pre><script>alert(1);</script></pre>
5. <div><script>alert(1);</script></div>
6. </td><script>alert(1);</script><td>
7. </p><script>alert(1);</script><p>
8.</h2><script>alert(1);</script><h2>
9. javascript:alert(1);
'웹 취약점 탐지 및 분석' 카테고리의 다른 글
Remote OS Command Injection 취약점 및 탐지 실습 (1) (0) | 2018.10.20 |
---|---|
Directory Browsing 취약점 및 탐지 실습 (0) | 2018.10.20 |
Cross site Scripting 취약점 탐지 실습 (0) | 2018.01.09 |
Remote OS Command Injection 취약점 탐지 실습(2) (0) | 2018.01.09 |
스노트 규칙 (0) | 2018.01.09 |