MySQL注入类型的判断方法与原理解析(演示sql语句执行命令) |
您所在的位置:网站首页 › usb网络共享优缺点分析报告 › MySQL注入类型的判断方法与原理解析(演示sql语句执行命令) |
文章目录
结论原理
在进行SQL注入的时候,我们在确定注入点之后,第一步要做的事情就是判断注入类型,注入类型分为字符型与数字型,确定好注入类型之后,才能继续接下来的sql注入。 以下口诀适用于具有数据回显的情况,如果只有页面变化,没有数据回显,就需要使用布尔盲注,如果页面没有任何变化就需要利用时间盲注判断,这里不对布尔盲注与时间盲注进行讲解,只讲述最基础的具有数据回显的情况。 结论牢记以下结论,三步即可判断出注入类型,具体原理后面会分析: 判断是数字型还是字符型:通过?id=1 and 1=2判断,如果显示不正常,说明是数字型,如果显示正常,就是字符串型,就需要进行下面的步骤继续判断。判断是什么符号的字符型: 单引号测试:通过?id=1'观察回显双引号测试:通过?id=1"观察回显 判断出字符型:如果哪个符号回显是报错信息,则表示是哪个符号的字符型,接着使用对应符号闭合之后进行SQL注入即可 原理1.假设是数字型注入 输入?id=33 and 1=2之后,在sql语句中是这样显示的 select * from cms_article where id=33 and 1=2;id=33的条件是可以查到正常内容的,但是加上 and 1=2 之后,就不会显示正常内容,说明我们的加上的and 1=2被mysql解析了,才不会显示正常的内容。所以可以通过输入?id=1 and 1=2观察显示情况,从而反推出是否是数字型注入,如果不是数字型注入,那必定是字符型注入了,所以就需要进行下一步判断:究竟是单引号还是双引号的字符。 2.假设是双引号字符型注入 1.我们输入?id=1'进行单引号测试之后,在sql语句中是这样显示的 select * from cms_article where id="33'";通过结果我们可以知道,mysql将我们输入的单引号忽略了,只取了我们传入的33,从而查出了数据。经过多次尝试,我将单引号换成其他标点符号,都能正常查出数据。 因此可以得出结论:mysql在查询条件为字符串的时候,遇到第一个符号就会停止搜索,只会取第一个符号之前的内容,并且正常显示,如果查询条件为数字,那么遇到符号就会报错了,如图: 所以我们可以借助这个特性,直接判断出字符型注入。 2.我们输入?id=1"进行双引号测试之后,在sql语句中是这样显示的: select * from cms_article where id="33"";可以看到我们输入的双引号闭合了sql语句中的第一个引号,然后引发了如下图报错: 最终结论:如果我们在确定这是字符型注入的时候,使用双引号如果引发了报错,说明就是双引号的字符型。 3.单引号字符的原理和双引号字符原理是一模一样的 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |