SQL注入基础学习7(续集2)

发布时间 2023-08-29 20:56:08作者: 凉城厌心

四、一些绕过技术

11、分块传输绕过
11.1、定义

分块传输(也称为Chunked Transfer Encoding)是一种HTTP协议的特性,它允许将HTTP响应分成多个块进行传输,而不是一次性传输整个响应。这在某些情况下可以提高性能和响应时间。然而,攻击者有时会尝试利用分块传输来绕过一些安全控制,包括防止SQL注入攻击。

11.2、使用

在HTTP头部,使用Transfer-Encoding: chunked来表示启用了分块传输。分块传输的响应数据被分为一系列块,每个块包括块大小的16进制表示和块的实际数据,最后以一个大小为0的块作为结束。手工的话,得自己计算,可以使用burpsuite的插件可以帮助我们自动分块。

利用burpsuite自动分块插件操作步骤如下,以sqli-labs的第11关为列

12、白名单绕过

有些waf会自带一些文件白名单,对于白名单waf不会拦截任何操作,所以可以利用这个特点。

白名单通常有目录

/admin

/phpmyadmin

/admin.php

13、静态文件绕过

除了白名单和目录外,还有一些waf并不会对静态文件进行拦截。如图片文件jpg、png、gif、或者css、js 会对这些静态文件的操作不会进行检测从而绕过waf拦截

14、pipline绕过注入

注入的时候需要发送两个请求包,第一个请求包中是含有sql注入的包,第二个包是正常的请求包,第一个包的Connection字段,将close状态改为keep-alive状态,利用burpsuite操作

绕过原因:有些waf会检测第二个包,不会对第一个包的参数进行检测,这样就可以绕过一些waf拦截

15、宽字节过滤

宽字节使用的函数addslashes(),该函数在指定的预定义字符前添加反斜杠。这些字符是单引号'"\NUL(NULL字符)。

要求,当前数据库的编码方式为GBK编码,构造方式,在单引号等之前加上%df,以sqli-labs32关为列

常规注入,发现单引号无法闭合

利用宽字节注入后:反斜杠失去了转义的作用,单引号起到了闭合的作用