▷ 작성자 : nova (nova@a3security.com), 니키 (ngnicky@a3sc.co.kr)
▷ 편집자 : 니키 (ngnicky@a3sc.co.kr)


Firefox Add-on (XSS ME, SQL Injection) 에 대해서


사용자마다 브라우저의 선택은 다르겠지만, Firefox의 부가기능들 중 관심을 가질만한 것들이 많습니다. 그중에서 "XSS ME" ,"SQL Injection ME" 라는 부가기능을 설명을 할려고 합니다. 실습환경은 CentOS + WebGoat 를 사용했습니다.

WebGoat의 환경 구성 방법은 아래 간단하게 설명을 하였습니다. 윈도우 버전도 동일하게 JDK와 WebGoat만 설치하시면 됩니다. 설치화면은 생략하겠습니다^^)

vmware 다운로드
vmware + centos 4.6 (images download)
- http://www.thoughtpolice.co.uk/

WebGoat 다운로드
OWASP WebGoat 5.2 Download (java, tomcat 포함)
- http://sourceforge.net/project/showfiles.php?group_id=64424&package_id=61824&release_id=613045

JDK 다운로드
http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/jdk-6u12-linux-i586-rpm.bin?BundledLineItemUUID=lT5IBe.pae8AAAEfo3hqH7Yk&OrderID=1BlIBe.pJ38AAAEfiHhqH7Yk&ProductID=1O1IBe.pLl4AAAEerDlTv_an&FileName=/jdk-6u12-linux-i586-rpm.bin


1. vmware에서 centos images를 구동한다.


2. JDK 설치

다운로드한 JDK를 설치한다.

- 설치방법
#sh jdk-6u12-linux-i586-rpm.bin

- 설치 위치  확인
/usr/java/jdk1.6.0_12 설치 되었음.

- ./etc/profile,  /.profile,  /.bash_profile 중 한곳에 jdk path를 추가합니다.

[root@localhost jihpa# vi /etc/profile
##### for jdk setting #####
export JAVA_HOME=/usr/java/jdk1.6.0_10
export PATH=$PATH:/usr/java/jdk1.6.0_10/bin

- 환경설정 적용
#export JAVA_HOME=/usr/java/jdk1.6.0_10
#export PATH=$PATH:/usr/java/jdk1.6.0_10/bin

3. OWASP WebGoat 설치

압축해제 이후 대상 폴더안에 webgoat.sh를 수정해야함.
17번째 라인에 있는 $JAVA_HOME/bin/java -version 2>&1 | grep 'version \"1.5' >/dev/null 를 다음과 같이 수정

==========================================================================
17                 $JAVA_HOME/bin/java -version 2>&1 | grep 'version \"1.5' >/dev/null
17                 $JAVA_HOME/bin/java -version 2>&1 | grep 'version \"1.6' >/dev/null
==========================================================================

JDK의 버전 체크에서 문제가 되므로 반드시 수정해야함.

- OWASP WebGoat안에 tomcat/conf/server_8080.xml tomcat/conf/server_80.xml 파일 수정
vmware이미로 제공되는 os의 IP를 수정해야합니다.

127.0.0.1로 되어있는 부분을 vmware의 대상 서버IP로 변경해주시기 바랍니다.

여기까지 설정되었으면

#sudo sh webgoat.sh start8080 <<< 8080 port로 실행
#sudo sh webgoat.sh start80 <<< 80 port로 실행
#sudo sh webgoat.sh stop <<< webgoat 중지

접속방법
http://localhost/WebGoat/attack

login in as: user = guest, password = guest


결론부터 말씀드리면 무료로 제공하는 자동툴은 대부분 패턴의 부족함이 있습니다. 자신에 맞는 환경을 만들려면 그만큼 사용자들이 많은 시간을 소비해야 겠죠? Source까지 제공(대부분 Javascript) 을 하기 때문에 관련 툴에 대한 분석을 하면서 학습에 도움이 되는데 만족을 해야 할거 같습니다.

WebGoat 테스트 중에서 XSS 와 관련된 파트에서 테스트를 해봤으며, 결과가 드러나고 있지만 확실히 이런 취약점이 존재하는지는 수동으로 재점검 할 필요가 있습니다. Add-on 기능에서는 단지 이런 종류의 기능을 제공하고 있다는것뿐이며 평가는 항상 사용자들이 점수를 주고 있습니다.

Firefox Add-on 기능중 XSS(Cross Site Scripting)과 SQL Injection 부분에 대해서 부가기능을 제공하고 있습니다.
아래 사이트에 가시면 관련 정보와 Source 파일까지 모두 받을 수 있으니 학습하는데 참고하시기 바랍니다.

http://securitycompass.com/exploitme.shtml



Firefox의 부가기능을 추가하는 방법은 아래와 같이 도구->부가기능으로 검색하시면 됩니다. "XSS Me"로 검색하시면 해당 부가기능이 검색될것이며 "Firefox에 추가"를 누르면 설치가 자동으로 될겁니다.
다른 부가기능들도 이와같이 간단하게 설치가 가능하며, 부가기능 모음 을 클릭하시면 모든 부가기능에서 자신이 원하는 것을 찾으셔도 됩니다. 한번도 경험하지 못하신 분들은 관심을 가지시면 Firefox의 매력에 빠질지도....^^)


설치가 완료되면 아래와 같이 추가가 되어 있을겁니다. "Open XSS Me Slidebar"를 클릭하면 왼쪽에 해당 기능이 보일겁니다.


해당 입력폼(Search)에 대한 점검을 모두 한다고 체크를 해주시면 간단하게 테스트할 수 있습니다.


XSS Me Options에 가면 점검 패턴들이 등록되어 있습니다. 자신이 원하는것도 XML 파일로 Import하여 추가를 할 수 있습니다.



SQL Injection 에 대한 점검방법은 위와 동일하기 때문에 생략을 하고, SQL Injection ME Options에 보면 XSS Me와 동일하게 패턴들이 등록되어 있습니다.


XSS 점검 후에 결과보고서를 제공하고 있습니다. 뭐가 잘못된 부분인지 상당히 판단하기 어렵죠?^^);;
분명 부족한점이 더 많은듯 보이지만, 점점 패턴에 대한 업데이트가 이루어지다 보면 자신한테 도움이 될만한 패턴들이 제공될 수도 있습니다.
중국툴(HDSI, NBSI 등)도 사용자 측면에서는 매우 쉽게 사용을 하고 있는 해킹툴이지만 그안에 있는 패턴은 전혀 생각지 못했던 패턴들일때가 있습니다. 현재도 많이 제공되는 툴들에 대한 응용과 활용도가 높아지고 있다는거죠^^)..


간단한 Firefox 부가기능을 설명했습니다. 이외에도 좋은 기능들이 많습니다. 정리되는대로 포스팅을 하도록 하겠습니다^^)