您的位置:首页 > 数据库

搜索型SQL注入及SQL漏洞测试

2019-03-31 21:09 246 查看

搜索型注入原理和数据型,字符型注入相差不大,都是通过构造一个合法的语句,当参数传入后台后,造成一个合法的SQL语句闭合,从而将数据库里的数据遍历出来。
首先打开客户端寻找纯在SQL注入漏洞的注入点。

通过提示可知,尝试输入一个提示字符进行搜索,z
这里我们输入字母’l’,可以看见后台给出的相关信息。
通过后台给出的数据,和平台给的输入提示。我们可以设想后台是否用了搜索逻辑去进行相关数据的搜索从而返回相关数据。在这里,有必要介绍数据库中的完整查询和模糊查询,
在数据库中一般语句类似于:
select *或字段 from menber where id like ‘%字符或字段%’
后台数据库会将数据表中类似或含有相似字符或字段的数据反馈回来,也就是类似于上图。
所以可以尝试着在这样的搜索平台尝试着去构造闭合语句,例如
‘%字段或字符%’ or 1=1 #%’
其中的字段或字符%’ or 1=1 #就是我们用来闭合的语句,后台的编译器会将从字段或字符%’ or 1=1一起编译,#后边的%'不再被编译因为已经被#给注释掉了。当运行结果返回永远为真,相关数据被遍历出来。
点击搜索查看返回值,可以看见数据库中的信息已经被遍历出来了。

接着,演示XX型注入,还是一样的原理,只要不断的尝试着去构造语句去对后台要进行编译的请求语句进行闭合,导致服务错误的恶意请求,就能够造成SQL语句注入漏洞。
同样是查询输入
尝试输入ll’) 1or1=1 # ,如果我们尝试得正确,这在后台就会形成入(‘ll’) 1 or 1=1 # ‘)的SQL语句,当然和前面提到的一样ll’) 1 or 1=1 形成闭合语句,#后的’)被注释掉,从而经过编译器返回值永远为真达到欺骗后台,遍历出数据库中的数据的作用。

其中,完成相应的语句闭合又有一些相关的技巧。例如,如果服务端要求输入的是用户名,则我们一般输入的是字符和字符串,那字符和字符串是需要’'或""去括起来的,所以我们可以尝试着着在闭合语句中用单/双引号去写闭合语句,例如
这里我们尝试着写注入语句:‘ll’or1=1#’,点击查询 可以看见后台数据被遍历出来了,当然,这在实际的操作注入当中绝非如此轻易可以遍历出来,再比如,输入相应逻辑错误的语句看后台返回提示,这可以判断出输入的SQL语句是否参与到后台逻辑判断。例如输入
可以看见
这表明我们写进去的SQL语句的确是参与到后台预算的,那么这里面就存在SQL语句注入漏洞。就可以尝试着写相关语句。
本文内容根据相关视频及网上相关知识进行简单的再现,希望可以帮到一些网络安全入门的新手。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: