홈페이지 취약점 분석 이야기 | 파일 지도 사진 깨알 |
---|
>> 목록보이기 WebGoat 명령어삽입 (Command Injection) 실습설명서
이 문서는 WebGoat 7.0.1의 "
WH-WebGoat-7.0.1 웹해킹 훈련장을 구동한다.
구동에 관해서는 WH-WebGoat-7.0.1 라이브 ISO 문서를 참조한다.
여기서 WebGoat 훈련장의 IP주소는
WebGoat 실행이 완료되면 파이어폭스(FireFox) 웹브라우저로 훈련장에 접속한다.
훈련장 URL은 firefox http://192.168.189.238:8080/WebGoat/ owasp-zap 2&> /dev/null Firefox의 Preference > Adanaced > Network > Settings...에서 HTTP 프록시를 OWASP-ZAP의 프록시 포트인 127.0.0.1:8080에 연결한다. Injection Flaws: Command Injection 공략 (수동점검)
운영체제 명령어 삽입(OS Command Injection) 취약점은 명령어를 전달하는 변수 값에 명령어를 연결하여 실행하도록
조작하는 것이다.
점검에서는 대부분의 운영체제가 지원하는 앰퍼샌드( Firefox 웹 브라우저로 WebGoat의 Command Injection 실습문제에 접속해보자.
ExecResults for '[/bin/sh, -c, cat "/root/.extract/webapps/WebGoat/plugin_extracted/plugin/CommandInjection/resources/AccessControlMatrix.html"]'
이 전달문을 보면
위와 같은 관찰로부터 /bin/sh -c cat "/디렉토리/파일이름" & 명령어 & ""
와 같은 명령어로 전환된다.
참고로 마지막 큰따옴표(")도 반드시 삽입해주어야 한다.
입력하지 않으면 서버에 전달된 문자열에서
이제 Firefox에 연결시킨 OWASP-ZAP의 FireFox가 WebGoat 서버로 전달하려던 HTTP 요청은 다음과 같았다. GET http://192.168.189.238:8080/WebGoat/attack?Screen=288&menu=1100&HelpFile=AccessControlMatrix.help&SUBMIT=View HTTP/1.1 Host: 192.168.189.238:8080 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0 Accept: */* Accept-Language: en-US,en;q=0.5 X-Requested-With: XMLHttpRequest Referer: http://192.168.189.238:8080/WebGoat/start.mvc Cookie: JSESSIONID=C8248ABD080623DF6BC1E1B5C3D1C6B9 Connection: keep-alive
OWASP ZAP에서 GET으로 전달되는
Injection Flaws: Command Injection 공략 (OWASP ZAP의 자동점검)일반적으로 명령어삽입 취약점은 웹취약점 스캐너들이 매우 잘 탐지하는 편이다. OWASP ZAP의 이력(History) 탭에서 다음 URL 접속에 대한 HTTP요청을 찾아서 공격을 해보자. http://192.168.189.238:8080/WebGoat/attack?Screen=288&menu=1100&HelpFile=AccessControlMatrix.help&SUBMIT=View
단일 HTTP 요청을 대상으로 자동점검을
실행하려면 해당 요청을 선택하고 오른쪽 마우스 단추를 눌러서
그 결과는 위와 같다. 명령어 삽입 취약점 이외에도 경로조작(Path Traversal), 반사형 XSS(Reflected Cross-site Scripting) 등의 공격도 가능함을 알 수 있다. OWASP ZAP이 접근한 URL과 취약점 점검에 사용한 변수 값은 다음과 같다. - Cross-site Scripting (Reflected) http://192.168.189.238:8080/WebGoat/attack?Screen=288&menu=1100&HelpFile=%3C%2Fb%3E%3Cscript%3Ealert%281%29%3B%3C%2Fscript%3E%3Cb%3E&SUBMIT=View
- Path Traversal http://192.168.189.238:8080/WebGoat/attack?Screen=288&menu=1100&HelpFile=..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fetc%2Fpasswd&SUBMIT=View
- Remote OS Command Injection http://192.168.189.238:8080/WebGoat/attack?Screen=288&menu=1100&HelpFile=AccessControlMatrix.help%22%26cat+%2Fetc%2Fpasswd%26%22&SUBMIT=View
[처음 작성한 날: 2016.12.15] [마지막으로 고친 날: 2016.12.15] < 이전 글 : WebGoat XSS: Phishing with XSS (2016.12.11) > 다음 글 : WebGoat: Numeric SQL Injection (2016.12.16) 이 저작물은 크리에이티브 커먼즈 저작자표시 4.0 국제 라이선스에 따라 이용할 수 있습니다. 잘못된 내용, 오탈자 및 기타 문의사항은 j1n5uk{at}daum.net으로 연락주시기 바랍니다. 문서의 시작으로 컴퓨터 깨알지식 웹핵 누리집 대문 |