1. 程式人生 > >程式碼審計實戰—DWVA-sql-low

程式碼審計實戰—DWVA-sql-low

0x00 前言

0x01 start

1. 黑盒測試

開啟DVWA-SQL,調整成low。

在這裡插入圖片描述

1.1 單引號測試

在這裡插入圖片描述
報錯。

1.2 # 進行註釋

在這裡插入圖片描述

1.3 使用1’ or 1=1 #進行測試

在這裡插入圖片描述

1.4 使用1’ union select 1,database()測試

在這裡插入圖片描述

2.百盒測試

我們來看原始碼。

<?php
if( isset( $_REQUEST[ 'Submit' ] ) ) {
	// Get input
	$id = $_REQUEST[ 'id' ];
	// Check database
	$query  = "SELECT first_name, last_name FROM users WHERE user_id = '$id
';"
; $result = mysqli_query($GLOBALS["___mysqli_ston"], $query ) or die( '<pre>' . ((is_object($GLOBALS["___mysqli_ston"])) ? mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)) . '</pre>' ); // Get results while( $row = mysqli_fetch_assoc
( $result ) ) { // Get values $first = $row["first_name"]; $last = $row["last_name"]; // Feedback for end user $html .= "<pre>ID: {$id}<br />First name: {$first}<br />Surname: {$last}</pre>"; } mysqli_close($GLOBALS["___mysqli_ston"]); } ?>

使用搜索,select啥的。。。不過這裡貌似不需要搜尋。。。直接就有。

可以清楚的看到
在這裡插入圖片描述
直接拿到使用者輸入的資料,沒有進行過濾。
直接引用資料
SELECT first_name, last_name FROM users WHERE user_id = ‘$id’
這個時候就會造成攻擊。
貌似有一丟丟簡單了。