ZVulDrill靶場漏洞分析(簡單的代碼審計學習)

裝了一個小靶場來進行簡單的代碼審計學習

在這裏插入圖片描述

  • 搜索框sql注入
    代碼分析
if (!empty($_GET['search'])) {
	$query = "SELECT * FROM comment WHERE comment_text LIKE '%{$_GET['search']}%'";
	$data = mysqli_query($dbc,$query);

該語句沒有任何防護,典型的搜索框注入
搜索輸入1後監控變量
在這裏插入圖片描述
sql語句 SELECT * FROM comment WHERE comment_text LIKE '%1%'
所以只要構造語句閉合%‘就能執行sql注入
Payload: %’ and 1=2 --+
在這裏插入圖片描述
And 1=1 頁面正常,存在注入,不再深入
在這裏插入圖片描述


  • 遠程文件包含漏洞
    代碼分析
<?php
$f = $_GET['f'];
include_once('sys/config.php');
include($f);
?>

典型include文件包含函數,且頁面顯示了以下配置,證明存在遠程文件包含漏洞,可直接拿下
• allow_url_include = on
• allow_url_fopen = on
![在這裏插入圖片描述](https://img-blog.csdnimg.cn/20200420213022142.png

  • 反射xss
    代碼分析
<?php echo 'The result for'.$_GET['search'].'is:'?>

典型的xss反射語句,傳入的值沒有進行htmlspecial過濾
在這裏插入圖片描述


  • 文件上次漏洞
    代碼分析
<?php
include_once('../sys/config.php');
$uploaddir = '../images';

if (isset($_POST['submit']) && isset($uploaddir)) {
	
    if (move_uploaded_file($_FILES['upfile']['tmp_name'], $uploaddir . '/' . $_FILES['upfile']['name'])) {
        echo '文件上傳成功,保存於:' . $uploaddir . '/' . $_FILES['upfile']['name'] . "\n";
		//更新用戶信息
		$clean_user_avatar = $uploaddir . '/' . clean_input($_FILES['upfile']['name']);
		$query = "UPDATE users SET user_avatar = '$clean_user_avatar' WHERE user_id = '{$_SESSION['user_id']}'";
		mysqli_query($dbc,$query) or die('updata error!');
		mysqli_close($dbc);
		//刷新緩存
		$_SESSION['avatar'] = $clean_user_avatar;
		header('Location: edit.php');
    }
	else {
		echo '圖片上傳失敗!<br />';
		echo '<a href="edit.php">返回</a>';
	}
}

這段代碼沒有進行判斷文件上傳的格式,存在任意文件上傳。即可拿shell。


繼續加油吧!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章