SQL注入篇--其他注入方式

SQL注入篇–其他注入方式

1)宽字节注入

先来说什么是宽字节。当某字符的大小为一个字节时,称其字符为窄字节.当某字符的大小为两个字节时,称其字符为宽字节.所有英文默认占一个字节,汉字占两个字节。常见的宽字节编码:GB2312,GBK,GB18030,BIG5,Shift_JIS等。

宽字节注入其实就是后端用了类似php中addslashes()的函数或方法。这个函数或方法会在输入的特殊字符前加入反斜杠\表示转义。但是因为宽字符的原因,转义的窄字符加输入的窄字符组合就是宽字符。所以后端如果使用宽字节编码,那么就可能可以使用宽字节注入。如下:
在这里插入图片描述

我们可以看到查询的sql语句被加了反斜杠,所以单引号不能做到闭合了。我们可以输入这个:%9D‘

在这里插入图片描述

可以看到反斜杠被和谐掉了,这样我们的单引号就可以完成闭合,然后我们可以构造payload:

?id=%9D’ union select 1,database(),3 --+

在这里插入图片描述

2)加密注入

如果我们无论输入什么都无法获取回显,我们可以尝试输入加密的数据来尝试,比如使用base64进行一个加密:

在这里插入图片描述

在这里插入图片描述

所以我们后续注入也要使用base64进行加密:

在这里插入图片描述

3)搜索型注入

搜索功能在许多web项目中非常常见,当我们可以操作搜索用的sql语句时,我们就可以使用搜索型注入:

在这里插入图片描述

在这里插入图片描述

查看回显,得知搜素型注入可以利用,我们构造payload:

?name=asdasd%’ union select database(),user(),3 --+

在这里插入图片描述

4)cookie注入

cookie注入其实就是后端将cookie信息存放到了数据库,其注入原理和一般的sql注入一样,就是注入点是http请求中的cookie。

我们使用sqlilab的第20关来演示:

首先正常登录:
在这里插入图片描述

发现这关将cookie信息和useragent信息全部放到了页面上,所以推测它的后端存放了这些信息到数据库,下面bp抓包尝试闭合:

在这里插入图片描述

可以看到响应包里边的数据,有报错,看信息直到这是单引号闭合,下面构造payload执行,这里使用报错注入:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值