일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 케이쉴드주니어 #1주차
- css #display #position
- css #속성
- DB backup server
- XSS종류
- BlindSQLInjection
- 모각코 #8월과정 #html #css #javascript
- SQL #Injection
- 케이쉴드주니어 #3주차 # 가상기업인프라구성
- 정보보안기사
- 케쉴주
- 리눅스서버 기본 활용 방안
- 자료구조 #알고리즘 #tree #트리순회
- css #float #flexbox #container #item #main-axis #cross-axis
- XSS방어방법
- 케이쉴드주니어 #3주차 #apache #tomcat
- rsyslog
- 정보처리기사 #정처기
- 스톱워치 #JS
- Docker #취약점진단
- SQLInjection방어방법
- 버블정렬 #bubble sort
- 기업 IT 인프라 구성의 이해
- 케이쉴드주니어 #1주차 #온라인
- 삽입정렬 #insertion sort
- 케이쉴드주니어 #2주차 #네트워크 구성 용어의 이해
- 케이쉴드주니어 #2주차 #웹 구성 요소의 이해
- 자료구조 #알고리즘 #최소비용신장트리 #그래프
- 윈도우 서버 기본 활용 방안
- K-Shield 주니어 10기 #지원후기 #최종합격후기 #정보보안 #
- Today
- Total
itsme
(6) XSS-2 본문
2) 검색 페이지공격
앞서 만든 검색 페이지에 실습을 진행하였다.
검색창에 <script>를 이용하여 alert 경고창이 나타나게 하였더니
이와 같이 나타났다.
클라이언트의 브라우저에서 실행된 alert 함수는 개발자가 의도한 것이 아니다.
사용자의 입력으로 인해 개발자가 의도치 않은 스크립트가 실행이 된 것이다. 이러한 공격을 XSS라고 한다.
앞서 만든 검색 페이지는 사용자의 입력값을 그대로 HTML에 출력시켰기에, 공격자가 임의의 Javascript코드를 실행하기 위한 공격 구문을 삽입하여 실행시킬 수 있었다.
검색페이지에는 Reflected XSS 취약점을 갖고 있다.
3) XSS 방어방법
1. 공격 구문에 활용된 수 있는 특수문자들에 대해 프런트엔드에서의 역할을 하지 못하는 일반 문자로 만든다.
SQL Injection에서는 특수문자 앞에 역슬래시를 붙여줌으로써 일반 문자화시켰지만, XSS 방어할 때는 HTML Entity 인코딩을 수행하는 것이 가장 보편적인 방법이다.
인코딩을 해주면 임의로 범위를 벗어난다거나 임의의 태그를 실행시킨다거나 하는 행위가 불가해져 XSS공격을 방어할 수 있다.
search.php파일에서 htmlentities 함수를 적용하자. htmlentities 함수는 어떠한 값에 대한 HTML Entity 인코딩을 수행해 주는 함수이다.
아까와 똑같이 Javascript 언어를 넣고 클릭하자
HTML 태그로 인식 되지않고 일반문자로 사용되어 화면에 그대로 출력하는 것을 볼 수 있다.
4) XSS 워게임 참고 사이트
XSS game
Welcome, recruit! Cross-site scripting (XSS) bugs are one of the most common and dangerous types of vulnerabilities in Web applications. These nasty buggers can allow your enemies to steal or modify user data in your apps and you must learn to dispatch the
xss-game.appspot.com
'Study > 보안' 카테고리의 다른 글
(5) XSS-1 (0) | 2023.01.17 |
---|---|
(4) SQL Injection -3 (0) | 2023.01.16 |
(3) SQL Injection -2 (0) | 2023.01.16 |
(2) SQL Injection - 1 (0) | 2023.01.16 |
(1) 로그인과 검색 페이지 구현하기 (0) | 2023.01.15 |