XSS, File Upload (Snort 룰 작성) 실습

DH Park·2025년 8월 20일


검색 바에 alert를 발생시키는 스크립트를 넣어본다.


알림으로 1이 잘 나오는 것을 볼 수 있다.


검색 바에 이미지를 넣고, 에러 시에 alert를 발생시키는 스크립트를 넣어 본다.


알림으로 2가 잘 나오는 것을 볼 수 있다.

위 두 가지 스크립트를 넣어 알림으로 쿠키 값 등을 얻는 공격을 XSS (Cross Site Scripting) 라고 한다.


게시판에서 글쓰기를 클릭하여 제목과 내용은 아무렇게 작성 후, php 파일을 업로드하여 게시글을 작성해 본다.


게시글이 잘 업로드 된 것을 볼 수 있다.


exe 파일 또한 업로드하여 게시글을 작성해 본다.


게시글이 잘 업로드 된 것을 볼 수 있다.


지난 SQL Injection에서 설정했던 룰 밑에 스크립트, 파일 업로드 공격에 대한 알림 룰을 작성한다.

alert tcp any any -> 13.12.37.2 8888 (msg: "XSS script tag"; content: "%3Cscript%3E"; nocase; http_raw_uri; sid:1000004; rev:1;)
=> <script> 문자열을 감지하여 알림을 보내는 룰이다. 퍼센트 인코딩을 사용하여 작성하였고, http_raw_uri를 통해 인코딩된 http uri의 패턴을 매칭한다.

alert tcp any any -> 13.12.37.2 8888 (msg:"XSS img"; content: "%3Cimg"; nocase; http_raw_uri; sid: 1000005; rev:1;)
=> <img 문자열을 감지하여 알림을 보내는 룰이다. 이것 또한 퍼센트 인코딩과 http_raw_uri 옵션을 사용하여 패턴을 매칭하였다.

alert tcp any any -> 13.12.37.2 8888 (msg:"File Upload"; content:".php"; pcre:"/filename=\".*.(php|jsp|asp|exe)\"/i"; nocase; sid: 1000006; rev:1;)
=> 이는 파일 업로드 공격을 감지하여 알림을 보내는 룰이다. pcre를 통해 정규 표현식으로 php, jsp, asp와 같은 쉘이나 exe와 같은 실행 파일을 탐지하도록 작성하였고, nocase를 통해 대소문자의 구별이 없도록 하였다. content는 임의로 작성하였고, pcre에서 패턴을 매칭하는 식으로 작동한다.


이후 공격을 수행해 보면 Blocked에 잘 감지되는 것을 볼 수 있다.



Alerts에서도 각각의 공격을 탐지한 행위에 대한 정보를 확인할 수 있다.

profile
Web Deveolper / Offensive Security Consultant (Prev)

0개의 댓글