今天继续给大家介绍渗透测试相关知识,本文主要内容是SQL注入简介。
免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
再次强调:严禁对未授权设备进行渗透测试!
在今天的文章中,不会介绍SQL注入一些最基本的知识和原理,而是面向对SQL注入有一定基础的同学,介绍SQL注入的一些小知识点,加深对SQL注入漏洞的理解。
SQL注入漏洞,其危害有两点:
1、大部分可以对数据库中数据造成影响。
2、少部分可以直接写入后门以获取网站权限,或者是读取指定文件的内容。
我们在进行SQL注入时,经常会忽略第二点。
简单来说,SQL注入产生条件如下:
1、存在可控变量
2、会带入数据库进行查询
3、变量中不存在过滤或者过滤不严格
我们在进行SQL注入时,首先要进行的是收集目标系统的信息,信息包括以下方面:
1、数据库版本
2、数据库名
3、用户名
4、操作系统
我们可以分别使用四个函数(变量)来查询上述信息,即version()、user()、database()、@@version_compile_os。
我们收集这些信息,有助于我们进行下一步的渗透。
例如,我们收集到数据库的用户,如果是root,那么通常我们就获得了对整个数据库的权限,可以查询其他数据库的相关数据;如果不是root,那么对数据库的相关操作就会收到影响。
在MySQL5.0及以上版本的数据库中,MySQL会自带一个information_schema的数据库,该数据库内存储了MySQL数据库中所有的库、表和字段信息,利用该表,我们就可以查询整个数据库的库表结构,更方便的查询数据库中的数据。
然而,在MySQL5.0以下版本的数据库中,MySQL数据库则没有该数据库,那么我们就必须采取暴力破解的方式,来猜解可能的数据库名、表名和字段名。或者是想办法获取网站配置或者源码,从而获得相关信息。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200