SQL注入简介

147 阅读2分钟

本文已参与[新人创作礼]活动,一起开启掘进创作之路。

今天继续给大家介绍渗透测试相关知识,本文主要内容是SQL注入简介。

免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 再次强调:严禁对未授权设备进行渗透测试!

在今天的文章中,不会介绍SQL注入一些最基本的知识和原理,而是面向对SQL注入有一定基础的同学,介绍SQL注入的一些小知识点,加深对SQL注入漏洞的理解。

一、SQL注入漏洞危害

SQL注入漏洞,其危害有两点: 1、大部分可以对数据库中数据造成影响。 2、少部分可以直接写入后门以获取网站权限,或者是读取指定文件的内容。 我们在进行SQL注入时,经常会忽略第二点。

二、SQL注入产生条件

简单来说,SQL注入产生条件如下: 1、存在可控变量 2、会带入数据库进行查询 3、变量中不存在过滤或者过滤不严格

三、SQL注入信息收集

我们在进行SQL注入时,首先要进行的是收集目标系统的信息,信息包括以下方面: 1、数据库版本 2、数据库名 3、用户名 4、操作系统 我们可以分别使用四个函数(变量)来查询上述信息,即version()、user()、database()、@@version_compile_os。 我们收集这些信息,有助于我们进行下一步的渗透。 例如,我们收集到数据库的用户,如果是root,那么通常我们就获得了对整个数据库的权限,可以查询其他数据库的相关数据;如果不是root,那么对数据库的相关操作就会收到影响。

四、SQL注入版本问题

在MySQL5.0及以上版本的数据库中,MySQL会自带一个information_schema的数据库,该数据库内存储了MySQL数据库中所有的库、表和字段信息,利用该表,我们就可以查询整个数据库的库表结构,更方便的查询数据库中的数据。 然而,在MySQL5.0以下版本的数据库中,MySQL数据库则没有该数据库,那么我们就必须采取暴力破解的方式,来猜解可能的数据库名、表名和字段名。或者是想办法获取网站配置或者源码,从而获得相关信息。 在这里插入图片描述 原创不易,转载请说明出处:掘金——永远是少年