数据库
首页 > 数据库> > Web安全之SQL注入基于DVWA1.8

Web安全之SQL注入基于DVWA1.8

作者:互联网

------------恢复内容开始------------

  一.SQL注入的原理

SQL注入指的是攻击者通过构建特殊的输入作为参数传到Web应用程序,这些输入主要都是SQL语法的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地 过滤用户输入的数据,致使非法数据侵入系统。SQL注入可简单分为数字型注入和字符型注入。

 二.SQL基础回顾

环境:OWASP

查看数据库版本:

 

 查看数据库:

 

 查看当前所在库:

 

 进入dvwa数据库:

 

 查看数据库中的表:

 查看表结构:

 

 查看表记录:

 

 Union联合查询:

 

 

 

 

 

 注意:Union联合查询前后字段数目必须相同

 

 

order by 升序排列:

 

 

 

 limit 检索数据库

 

 

 

 

 与MySQL注入有关的知识点

 

 

 

 

 

 

三.SQL注入流程

1.判断是否有SQL注入漏洞;

2. 判断操作系统、数据库和web应用的类型;

3. 获取数据库信息,包括管理员信息及拖库;

4. 加密信息破解,sqlmap可自动破解;

5. 提升权限,获得sql-shell、os-shell、登录应用后台;

 

四.基于DVWA的SQL注入

1.low级别

基于错误的注入

错误注入的思路是通过构造特殊的sql语句,根据得到的错误信息,确认sql注入点; 通过数据库报错信息,也可以探测到数据库的类型和其他有用信息。 通过输入单引号,触发数据库异常,通过异常日志诊断数据库类型。

 

 

 

 

 

 

基于Union联合注入

布尔逻辑注入的思路是闭合SQL语句、构造or和and逻辑语句、注释多余的代码。

猜字段个数

 

 

 

 

 

 

 查看回显字段

 

 

查看数据库名

 

 

查看当前数据库(dvwa)的表名

 

 

 查看字段名

 

 查看字段名对应的值

 

 

基于布尔的注入

布尔逻辑注入的思路是闭合SQL语句、构造or和and逻辑语句、注释多余的代码。

 

 

2.中安全级别

 

 

 

 

 

 看一下中安全级别的代码

 

 

 

 

 

 

 

 3.高安全级别

先看一下代码

 

 

 

 可以看出在高安全级别已经很难实现渗透

 

4.SQL盲注

盲注是指当输入一些特殊字符时,页面并不显示错误提示,只能通过页面是否正常显示来进行判断。有些数据库对错误信息做了安全配置,使得无法通过以上方式探测到注入点,此时,通过设置sleep语句来探测注入点。

 

 

 五、sqlmap自动化注入

1. SQL注入比较好用的工具,首推开源工具SQLmap。SQLmap是一个国内外著名的安全稳定性测试工具,可以用来进行自动 化检测,利用SQL注入漏洞,获取数据库服务器的权限。它具有功能强大的检测引擎,针对各种不同类型数据库的安全稳 定性测试的功能选项,包括获取数据库中存储的数据,访问操作系统文件甚至可以通过外带数据连接的方式执行操作系 统命令。 SQLmap支持MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase和SAP MaxDB等数据库的各种安全漏洞检测。

详细教程可参考: https://blog.csdn.net/wn314/article/details/78872828#t7

 

2.SQLMap常见的用法简单来说分为三类:

Get请求包的注入点测试命令:

sqlmap.py -u “http://localhost:8001/dvwa/vulnerabilities/sqli_blind/?id=1&Submit=Submit#” --cookie=“security=low; PHPSESSID=rujk4c8mesl5okum32p362dig0”;
Post请求包的注入点测试命令:
sqlmap.py -u “http://localhost:8001/dvwa/vulnerabilities/sqli_blind/” --data="id=1&Submit=Submit" --cookie=“security=medium; PHPSESSID=rujk4c8mesl5okum32p362dig0”
通用型简单测试命令:
sqlmap.py -r E:\sql.txt(保存请求包数据的txt文件)

3.基于DVWA1.8的sqlmap/SQL注入

一般测试命令中的URL后面是不需要带cookie值的,但是DVWA中利用SQLMap进行注入测试时,若不提供Cookie将会提示302重定向使得页面跳转回登录页,必须在保持登录下才能顺利进行测试,故操作命令中需带上登录账户的cookie信息--cookie="xxx"

 

 

 

 

下面将进行Low等级下使用SQLMap进行SQL注入的检测和利用

首先输入ID=1,点击Submit,并用BurpSuite拦截请求包

 

 

 

 

可以判断出是注入点

 

 

 

 

开始获取DBMS中所有的数据库名称

 

 

 

 

然后获取Web应用当前连接的数据库

 

 

列出当前数据库的所有表

 

 

获取当前数据库指定表的字段名称

 

 

 

 

读取当前数据库指定表下指定字段的内容

 

 

 

 至此,爆出了所有账户和密码,可见SQLMap工具的强大。我们可以利用SQLMap毫无障碍地顺利爆出DVWA的SQL注入漏洞Low和Medium两个安全等级下的数据库数据,High级别则行不通。

 

 

 

 

 

 

 

------------恢复内容结束------------

标签:sqlmap,Web,查看,数据库,语句,DVWA1.8,SQL,注入
来源: https://www.cnblogs.com/yunque01/p/15925680.html