SQL数字.字符型漏洞注入再现

当应用程序使用输入内容来构造动态sql语句以访问数据库时,会发生sql注入攻击。当服务器将获得的客户端输入值并没有做任何处理直接拼接到查询语句中去访问数据库,输入端可以利用诸如逻辑运算符等使返回值永远为真达到欺骗服务器形成恶意的SQL语句
例如,
输入’1’时返回值为真,当输入’1’ or ‘1’='1’时,由于’1’为真,‘1’='1’永远为真,通过逻辑or运算时返回值也永远为真,那么此时视作输入端输入的值为真,这就构成了SQL注入漏洞。
下面通过burpsuit抓包演示。
这里博主用一个纯在SQL注入漏洞的查询页面做演示。输入用户id发出查询请求同时打开burpsuit进行抓包。在这里插入图片描述
右键点击抓到的数据包send to reapeter进行数据包重现。在这里插入图片描述
在repeat中点击GO进行数据包重放在这里插入图片描述
可以看到数据库给出的返回值为在这里插入图片描述
将左端用户id从1改成2再次查看返回值。可以看到任然没有问题。在这里插入图片描述
但是当用户id改成1 or 1=1,再来看一下数据库给出的返回值。在这里插入图片描述
由上图可以发现数据库中所有的数据都被遍历出来了。

下面介绍字符型注入语句。
字符型SQL注入漏洞的原理和数值型SQL的原理相差不大,都是通过系统编写所用语言,语法上的运用来注入漏洞,从而欺骗服务器达到从后台数据库遍历数据的目的。
同样,博主在纯在SQL字符型注入漏洞的漏洞练习平台上做演示。
从服务器要求来看,需要输入用户名,当输入数字时可以看见返回值报错。在这里插入图片描述
所以尝试字符输入,可以看见系统返回在这里插入图片描述
同样的,打开burpsuit进行抓包。并将请求发送到reapeter进行重放。在这里插入图片描述
在右端raw中可以找到返回值在这里插入图片描述
尝试注入SQL漏洞

猜你喜欢

转载自blog.csdn.net/weixin_44720762/article/details/88782264