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