취약한 웹 어플리케이션 DVWA를 통한 취약점 진단 실습입니다.
크로스사이트스크립크(XSS) 공격 입니다.
일단 XSS에 대한 자세한 설명은 전 포스팅인 아래 URL을 참고 부탁드립니다.!
https://itinformation.tistory.com/60
XSS(Reflexted) 취약점 중 LOW, MIDDLE, HIGH에 대한 공격 구문 및 반응들을 살펴 보겠습니다.
처음으로 동작원리를 한번 살펴보겠습니다.
제가 "test"를 입력했을때 Hello test라는 문자열이 출력되는 것을보면, 입력한 값을 그대로 출력해주는 동작을 하는 것임을 예상할 수 있습니다.
해당 입력 폼에 XSS구문을 입력해가며, 테스트 해보겠습니다.
---------LOW LEVEL
--입력구문
-> test"><script>alert("XSS")</script>
별다른 검증없이 스크립트 구문을 입력 시 스크립트 구문이 실행되는 것을 확인!
--------- MIDIUM LEVEL
똑같은 구문을 입력하여 테스트 시도
확인 시 <scrip>와 </script>가 사라진 문자열만 남아 출력이되는 것을 확인 할 수 있습니다.
그렇다면 소스를 확인해 보겠습니다.
----소스-----
<? php
// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
// Get input
$name = str_replace( '<script>', '', $_GET[ 'name' ] );
// Feedback for end user
echo "<pre>Hello ${name}</pre>";
}
?>
<? php
소스에서 확인 할 있는 것과 같이 <script>라는 문자열을 replace를 시키는 것을 확인
그래서 <Script>와 같이 간단한 변조를 통해서 공격을 시도
입력구문 : test"><Script>alert("XSS")</Script>
--------- HIGH LEVEL
사진없이 글로만 설명드리도록 하겠습니다.!!
기존 medium과 달리 script문자열에 대해서 각각에 문자열을 다 검사합니다.
script문자 대신 다른 구문을 사용해야 합니다.
대체할 수있는 구문은 아주아주 다양하게 존재합니다.
img, onmouse, mouseover, confirm, 등 다양한 구문에 대해서 공격을 시도해보시면 되겠습니다.!
'보안 공부 > Web 보안' 카테고리의 다른 글
SQL Injection 취약점 (0) | 2019.08.06 |
---|---|
취약한 웹 어플리케이션 DVWA를 통한 취약점 진단_SQL Injection (0) | 2019.07.25 |
HTTP 불필요한 웹 메서드 차단 방법 (0) | 2019.05.21 |
서버버전 노출 대응방안 모음 (0) | 2019.01.02 |
XSS (크로스사이트 스크립트, 크로스 사이트 스크립팅) 취약점 (3) | 2018.12.15 |