SQL注入-不要相信用户所输入的一切信息

SQL注入式是后台通常没有对特殊字符和某些信息没有做过滤和特殊处理的情况,将用户提交的数据直接拼接成sql语句直接执行所导致的问题

按照注入点的类型来分存在字符型的注入和整型的注入
按照提交方式分get,post,cookie,header注入
按照执行的效果来分有基于布尔的盲注,基于时间的盲注,基于报错注入,联合查询注入,堆查询注入

不大明白的是堆查询和时间的效果,布尔则用查询的真假来判断,报错则为页面的报错状态判断,联合查询则为union语句来判断

SQL注入的问题所在则为相信了用户所提交的信息且后台随意拼装SQL所导致的

一个本地数据库的SQL语句测试

(1)首先使用order by 对字段进行排序,或者group by
判断当前表的字段总数,一般查询的当前数据库就是站点使用的数据库(为后面的联合查询做准备,因为联合查询字段数量一定要对)

当前表的字段数为6,那么返回正确结果
在这里插入图片描述

当排序的字段数值大于当前表字段实际数时则报错,那么可以通过这个语句判断出当前的表存在几个字段
在这里插入图片描述

当知道了当前表的字段总数后,使用联合查询union来查询数据库的名称

(2)使用联合查询获取到当前数据库名(利用自带函数查询) 那么使用联合查询

 union and 1=2 union select 1,USER(),DATABASE(),VERSION(),1,1

那么总的语句就是

SELECT * from zsstest.mysqltest1 WHERE id=1 and 1=2 union select 1,USER(),DATABASE(),VERSION(),1,1 limit 0,1

可以查看到当前用户和当前数据库和版本,还有一些其他的数据库函数也可以使用
在这里插入图片描述

(3)获取表

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值