SQL注入--类型

所谓盲注就是在服务器没有错误回显的时候完成的注入攻击。 服务器没有错误回显,对于攻击者来说缺少了非常重要的“调试信息”

布尔盲注 页面有回显,但是不会显示具体的内容 只会根据传参信息返回true和false

时间盲注 传参任何东西返回结果都一样 页面返回值只有一种,true,无论输入任何值,返回情况都会按照正常的进行处理 加入特定的时间函数,通过查看web页面返回的时间差来判断注入语句是否正确

常用函数

length() 函数 返回字符串的长度 substr() 截取字符串 substr(str,m,n) m 从第m个字符开始截取 n 截取后字符串长度为n concat() 字符串拼接函数 ascii() 返回字符的ascii码 [将字符变为数字] sleep() 将程序挂起一段时间n为n秒 if(expr1,expr2,expr3) 判断语句 如果第一个语句正确就执行第二个语句,如果错误执行第三个语句

布尔盲注

时间盲注

宽字节注入

目前多数网站使用的都为UTF-8编码,如果MySQL数据库的编码设置为GBK编码 此时就会产生宽字节注入攻击

UTF-8编码:一个中文字符占三个字节 GBK编码:一个中文字符占两个字节

如何绕过\ ?

utf-8编码是三个字节列如一个中文:和===>%fe%gt%hy

然而:和‘===>会自动转义 加入 \ ’ ,而\=%5c

故:和‘===>%fe %gt %hy %5c' 四个字节放入MySQl中使用GBK编码变成 %fe%gt==>变成一个中文 %hy %5c==>变成一个中文 以 ‘ 闭合

堆叠注入

堆叠注入从名词的含义就可以看到应该是一堆 sql 语句(多条)一起执行。而在真实的运用中也是这样的, 我们知道在 mysql 中, 主要是命令行中, 每一条语句结尾加; 表示语句结束。这样我们就想到了是不是可以多句一起使用

在SQL中,分号(;)是用来表示一条sql语句的结束。Select * from products where productid=1;DELETE FROM products 当执行查询后,第一条显示查询信息,第二条则将整个表进行删除。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值