Chapter 13 사례 연구(Case Studies) Hacking Exposed Chapter 13 사례 연구(Case Studies) 김 용 배 네트워크 실험실
목차 사례 연구 #1 : URL부터 명령어 라인과 백까지 사례 연구 #2 : 보안을 고려하지 않은 XOR 사례 연구 #3 : 크로스-사이트 스크립팅 칼렌더
사례연구 #1 URL부터 명령어 라인과 백까지
URL부터 명령어 라인과 백까지 etc/passwd 발견후 chroot 웹루트들을 드러낸다. /onlineserv/HB/DimlDisplayer.cgi?DIML_FILE=SummaryDetail.diml /onlineserv/HB/DimlDisplayer.cgi?DIML_FILE=../../../../../ etc/passwd%00SummaryDetail.diml etc/passwd 발견후 .Porfile, .kshrc, and . Kshenv 파일에 사용자의 홈 디렉토리 검사 chroot 웹루트들을 드러낸다. /home/jail/usr/bank/HB/AXIS.cfg 파일뿐만 아니라 디렉토리 내용을 볼수 있다.
Server_name=&… 문자열 전송(Post) /cgi-bin/admin/allstats.cgi Server_name=&… 문자열 전송(Post) /cgi-bin/admin/a_form.cgi <p>Attempting to run:<code>./analyze –n https-80-bank-64□ -I /u/webs/logs/https-80-bank-64/access –c hnrfeuokc –t S5m5h24 –l c+5h5 –p ctl 2>&1</code></p> form.cgi의 출력 /cgi-bin/admin/a_form.cgi?server_name=ls&… ls명령 스크립트에 전달 <p>Attempting to run:<code>./analyze –n ls –x –i /u/webs/logs/ https-80-bank-64/access –c hnrfeuokc –t S5m5h24 –l c+5h5 –p ctl 2>&1</code></p> -n 옵션이 Server_name에 할당됨
/cgi-bin/admin/a_form.cgi?server_name=%0als%0a&… %0a : 새로운 행 문자 %0als%0a: ls명령 <hr><h1 align=center>Starting analysis</h1><hr> <p>Attempting to run: <code>./analyze –n ls -i /u/web/logs/https-80-bank-64/access –c z –t z –l z –p c 2>&1</code></p> <p>This may take a bit.</p><hr size=4> .analyze: option requires an argument n Usage : ./analyze [-n name] [-x] [-r] [-p order] [-I file] [-o file] [-c opts] [-t opts] [-l opts] For a list of all options, see: ./analyze –h | more a_form.cgi admin-log.1999-09 admin-log.2001-09 admin.css admin.exec admindb.cfg admindb.cgi allstats.cgi …..
# 대응방법 부적절한 chroot 환경(호스트) 디렉토르 가로지르기(웹) 물려받은 스크립트들(웹) 프로그램과 필요한 파일등을 특정 디렉토리에 놓는다. 디렉토리에 프로그램을 감금 디렉토르 가로지르기(웹) 강한 입력 유효성을 적용, 받을수 있는 파일 이름들의 배열 URL에 배열 인덱스를 통화하는것이 나을수 있음. 독립변수로 파일 이름들을 받는 애플리케이션 프로그램 조심 물려받은 스크립트들(웹) /cgi-bin/admin이 사용되지 않았지만 서버에 남아 있음, 제거 유닉스 셀(ksh)로 작성되어짐(보안상 취약)
사례연구 #2 보안을 고려하지 않은 XOR
보안을 고려하지 않은 XOR 온라인 웹 애플리케이션 프로그램에 문서처리 능력들을 집어넣고자 하는 중요한 합법적인 서비스 회사 확실한 사용자 이름/패스워드 조합을 가진 게스트 계정 로그온 증명서들을 추측 IIS취약점(+.htr소스는 공개)을 사용하는 ASP 스크립트로 부터 비즈니스 논리를 얻음 게스트 계정을 이용하여,표준 웹 브라우져에 의해 파일 이름으로 그것들을 요구함으로써 디렉토리안에 있는 include 파일 들을 볼수 있다.
# 대응방법 게스트/테스트/데모 계정과 샘플 파일드이 커다란 No-No 보안 패치들을 최신으로 유지 .inc 파일들을 .asp 파일로 변경 파일 시스템의 완전 무결성
사례연구 #3 크로스-사이트 스크립팅 칼렌더
<SCRIPT Language=“Javascript”> alert(“Hello”);</SCRIPT> 크로스-사이트 스크립팅 칼렌더 한 사용자로 부터 입력을 받고 다른 사람들에게 출력을 표시하도록 설계된 웹 애플리케이션 프로그램 잠재적인 입력 필드로 간단한 자바 스크립트 경고 메시지 주입. <SCRIPT Language=“Javascript”> alert(“Hello”);</SCRIPT>
# 대응방법 한가지 단점이 전체 애플리케이션 프로그램 타협을 이루는데 어떻게 사용될수 있는지에 대한 예 서버 측의 입력 유효성 루틴은 멈출수 없음. 철저한 테스트 소스 레벨 보안성 검검
Q & A