零、绪论:

  文章部分整理来源于公司同事,特此鸣谢!!!

一、关于注入点在KEY上的注入:

我们来看一个查询,你的第一个字段是过滤器(filter)第二个字段是查询的关键字,例如查询ip == 1.2.3.4 ,你选择查询的类型是IP 内容是1.2.3.4

此时SQL语句有两种办法拼接:

 #
sql = "select * from asset where type='ip' and value='1.2.3.4';"
'''
表结构应该是这样
id type value
1 domain baidu.com
2 ip 1.2.3.4
'''
#
sql = "select * from asset where ip='1.2.3.4';"
'''
表结构应该这样
id ip state
1 1.2.3.4 up
2 1.2.3.1 down
'''

类似于第二种,如果ip这个地方是可以控制的,那么也有可能存在注入:(备注一般这么写SQL的很少,但是也备不住有这么设计的不是!)

类似这种注入的SQL拼接就和以前一般注入点在value上有所不同;

这种拼接时候要注意拼接时候闭合后面的内容 例如原URL是http://www.ipcheck.com/ipcheckindex?key=ip&value=1.2.3.4

那么现在可以如下http://www.ipcheck.com/ipcheckindex?key=ip%20=‘1.2.3.4’ union select ...#&value=1.2.3.4

二、MySQL的函数

1、系统信息函数:

1. version()——MySQL版本

2. user()——数据库用户名

3. database()——数据库名

4. @@datadir——数据库路径

5. @@version_compile_os——操作系统版本

MySQL中关于SQL注入的相关需要的基础知识-LMLPHP

2、字符串连接函数

concat(str1,str2,...)——没有分隔符地连接字符串

concat_ws(separator,str1,str2,...)——含有分隔符地连接字符串

group_concat(str1,str2,...)——连接一个组的所有字符串,并以逗号分隔每一条数据

MySQL中关于SQL注入的相关需要的基础知识-LMLPHP

三、union select 和 union all select用法(引用源自:陈征)

1、union

MySQL中关于SQL注入的相关需要的基础知识-LMLPHP

2、union all

MySQL中关于SQL注入的相关需要的基础知识-LMLPHP

四、MYSQL中的information_schema(引用源自:陈征)

补充关注点(引用源自:陈征):

五、关于文件读写:

1、写文件:

select 内容 into outfile '/path/filename';

2、读文件:

select load_file(路径)

04-17 13:51
查看更多