출처: http://lng1982.tistory.com/139
XSS (Cross Site Scripting) 공격을 통해 웹 사이트의 보안을 취약하게 할 수 있는 툴이 있다.
Burp Suite 라는 툴인데, 이 툴을 이용하게 되면 javascript를 이용한 validation체크를 우회할 수 있다.
이 말은 웹 사이트의 보안을 유지하려면 client단에서의 javascript 유효성 체크뿐만 아니라 서버단에서의 유효성 체크도 해야 한다는 것이다. 간혹 우리 개발자들은 바쁘고 시간이 없다는 이유로 클라이언트의 유효성 체크만 하고 넘어가는 경우가 비일비재하다. 물론 나 또한 그런 경험이 있다.
Burp Suite의 동작 원리는 간단하다.
1. local PC 웹 브라우저에서 naver.com HTTP request
2. proxy server(Burp Suite)
3. 네이버 사이트 접속
4. 네이버 사이트 HTTP response
5. Proxy server(Burp Suite)
6. local PC 웹 브라우저
위의 순서를 보면 HTTP 요청과 응답 시 항상 proxy server를 거쳐 데이터가 이동하게 되는데 이곳에서 웹 사이트의 우회 공격을 할 수 있게 조작을 할 수 있는 것이다.
가령 response 응답의 HTML에서 자바스크립트 패스워드 유효성 체크 로직 부분을 삭제한 후 local PC 웹 브라우저에 return하게 되면 사용자 웹 브라우저에는 패스워드 검증 로직은 삭제되어 있는 HTML 결과 페이지를 받게 되는 것이다.
또 한 가지 SMS 인증과 같은 예를 들 수 있다.
HTTP/1.0 200 OK
Date: Wed, 28 Nov 2012 17:19:49 GMT
Server: Apache
Pragma: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Cache-Control: no-cache
Cache-Control: no-store
Content-Length: 38
Connection: close
Content-Type: text/plain
{"check":0,"msg":"MOBILE_AUTH_FAIL"}
위와 같이 서버로부터 response를 받으면 proxy server가 이를 가로채고 Burp Suite tool을 이용하여 데이터를 조작 후 브라우저로 response 보낼 수 있다.
다음과 같이 데이터를 조작하여 SMS 인증을 받고, 다음 절차로 진행할 수 있는 것이다.
{"check":1,"msg":"MOBILE_AUTH_SUCCESS"}
XSS 공격 테스트를 위한 Burp Suite 설정은 간단하다.
1.
http://portswigger.net/burp/ 에서 다운로드 받는다. jar로 되어 있고, 로컬 PC에 Java JDK가 설치되어 있어야 한다.
2.
Burp Suite 실행 > Proxy 탭 이동 > 바로 아래에 있는 Options 클릭 후 다음과 같이 설정
127.0.0.1:8080과 같이 설정
3.
IE > 도구 > 인터넷 옵션 > 연결 탭 이동
"LAN 설정" 버튼 클릭 후 프록시 서버 지정
주소 : 127.0.0.1
포트 : 8080
4.
Proxy 탭의 Intercept 클릭
Intercept is on 클릭
IE에서 테스트할 URL 입력하면 화면이 멈추게 되는데 이때 Burp Suite 화면에 가서 Forward를 클릭하면 정상적으로 페이지 로딩이 된다.
'프로젝트 관련 조사 > 웹' 카테고리의 다른 글
[PHP] 문자열 필터링 함수(ereg, eregi...) 취약점을 이용한 우회 (0) | 2016.06.20 |
---|---|
[PHP] strcmp 취약점을 이용한 인증 우회 (0) | 2016.06.20 |
document.URL.indexOf() (0) | 2016.06.20 |
document.URL 과 location.href , location 비교 (0) | 2016.06.20 |
자바스크립트 변수 확인 방법 (0) | 2016.06.18 |