GET报错注入

报错介绍

使用的正常的语句无法显示想要查询的数据,然后我们故意输入错的语句来强迫数据库
爆出数据来
在这里插入图片描述

GET单引号报错注入

以less-5为例
原sql语句
select * from admin where id=‘id’ limit 0,1
回顾一下
浏览器输入id=1正确
显示you are in
在输入id=1
显示错误
you have an error in "1’ LIMIT 0,1’
去掉外引号
‘1’ LIMIT 0,1
你想啊,输入1是对的
但是输入1\是错的
所以就是多出了一个\

在这里插入图片描述
在这里插入图片描述
以上说了点题外话
其实就是帮你回顾一下之前的

你会发现在你输入错误的时候只显示你输入的错误的语句
其他都不显示,这就很气
你想要的是即使你输入错了
数据库也能返回你比如当前用户,密码等等

这个时候我故意输入错误
也就是id=0’
然后再配上以下图片中的某一段
在这里插入图片描述

在这里插入图片描述
很明显看到
我们输入错了
但是数据库返回给我们一些很重要的信息

在你用上述代码的时候
别忘了做一些修改
比如把sqli-Lab改为sqli等
你自己根据当前情况改

现在对第一种代码进行解释
首先id=0’报错
union select 联合查询,也就是把结果合到一块去
limit 0,1输出2行
x就是前面所有的等价代换,其实就是一种表示

GET双引号报错注入

原理和上面差不多
只不过引号变为双的而已
我们使用Less-6
在这里插入图片描述

Sqlmap安全测试

测试开始还是用-u参数测试
测试出数据库之后
再加上参数-d 库名 --tables
也就是从上到下注意测试
最后加上参数columns
探测表中的字段
探测完之后
我们要探测字段内容
-C 字段名 --dump

猜你喜欢

转载自blog.csdn.net/qq_43776408/article/details/106651376