본문 바로가기
해킹/DVWA

DVWA 실습 10. XSS (DOM) (Medium)

by yenua 2022. 5. 29.
반응형
Objective
Run your own JavaScript in another user's browser, use this to steal the cookie of a logged in user.

다른 사용자의 쿠키를 훔쳐보자.

 

http://192.168.0.101/vulnerabilities/xss_d/?default=#%3Cscript%3Ealert(document.cookie)%3C/script%3E

이전에 작성했던 코드가 여전히 잘 동작한다..

# 때문에 뒤에 부터는 인자로 받아들여지지 않은 것 같다

라고 하기에는 #는 인식이 된 것 같긴한데.. 잘 모르겠다.

 

<?php
// Is there any input?
if ( array_key_exists( "default", $_GET ) && !is_null ($_GET[ 'default' ]) ) {
    $default = $_GET['default'];
    
    # Do not allow script tags
    if (stripos ($default, "<script") !== false) {
        header ("location: ?default=English");
        exit;
    }
}
?>

코드에서는 '<script'가 대소문자 상관없이 입력값에 있으면 무조건 English로 이동하게 되어있기는 하다..

어차피 다른 태그 쓰면 우회가 되겠지만! 어찌됐든 내 공격 스크립트에서는 #가 뒤의 값을 서버로 전송하지 않기 때문에 이런 일이 일어난 것 같다.

 

http://mkseo.pe.kr/blog/?p=2269 

위 링크를 보면 #를 통해 페이지의 리프레쉬 없이 브라우저단에서 작업을 수행할 수 있도록 할 수도 있다고 한다.

반응형