보안 공부/Web 보안

취약한 웹 어플리케이션 DVWA를 통한 취약점 진단_XSS공격

H.J.World 2019. 7. 19. 13:32
728x90
반응형

취약한 웹 어플리케이션 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, 등 다양한 구문에 대해서 공격을 시도해보시면 되겠습니다.!

728x90
반응형