Loading
0

Sql注入之sqlmap+dvwa实例演练

相信很多同学都已经知道了什么是sql注入,也明白为什么会发生sql注入。也可以通过在输入框和url中“手工”注入,来实现绕过登录、非法修改这样有趣又实用的功能。但这些还远不能让我们感觉到sql注入的巨大威力。

你也一定听过各种各样的新闻报道xxx网站被黑,上百万用户数据泄露。想知道它们是如何获得这些数据的吗?不讲过多原理,就和实验楼的【Sql注入之sqlmap+dvwa实例演练】项目教程一起来实操“拖库”。

sqlmap是当前最火热的自动化SQL注入工具,可以扫描、发现并利用给定URL的SQL注入漏洞。而DVWA是一套包含了一些常见安全漏洞的靶机web应用。矛和盾都在手,一起通过该项目的实际演练来感受sql注入的实际威力吧。

一、sql注入原理

注入式攻击可行的根本原因在于数据与程序/指令的混合。在sql注入中,精心构造的输入数据将“溢出”原本它的数据域范围,成为sql语句控制域的一部分,进而改变和控制sql语句的行为。

利用sql注入漏洞的步骤可分为:

  • 找注入点(在哪里注入)
  • 构造注入内容(如何注入)

注入点:

根据注入的原理,可判断出有与服务器数据交互的地方都有可被注入的可能。Web应用的用户输入方式比较多,其中一些用户输入方式是很明显的,如HTML表单。但还有许多不明显的交互方式例如隐藏的HTML表单输入、HTTP头部、cookies、甚至异步的AJAX数据交互请求。常见的注入点有GET请求(url参数)和POST请求(表单数据)。我们可以通过burp suite这类代理、抓包工具来全面分析可注入点。

注入类型:

注入字符串构造方式或者说注入类型有5种,分别是:

  • 布尔型注入
  • 报错型注入
  • 基于时间延迟注入
  • 可联合查询注入
  • 可多语句查询注入

这5种方式基本涵盖了绝大多数的注入攻击实例,掌握了这5种方式可以说能够很好的查找和利用sql注入了。

其中前3种一般用来获取DBMS的相关信息和sql注入检测;后两种用来大量获取数据库中的数据。

sqlmap在检测和注入时自动使用到了以上几种构造方式。

二、sqlmap的安装和使用

什么是SQLmap?

SQLmap是一款用来检测与利用SQL注入漏洞的免费开源工具,有一个非常棒的特性,即对检测与利用的自动化处理(数据库指纹、访问底层文件系统、执行命令)。

ubuntu的软件源中不包含sqlmap,去github下载源码速度较慢,我们使用kali的源来下载和安装以节省时间。

$ wget http://labfile.oss.aliyuncs.com/courses/645/kali_aliyun_source.txt
$ sudo cat /etc/apt/sources.list >> kali_aliyun_source.txt
$ sudo cp kali_aliyun_source.txt /etc/apt/sources.list
$ sudo apt-get update
$ sudo apt-get install sqlmap

安装过程可能出现无法验证软件包的错误提示,不会影响后续实验,可以忽略跳过。安装完毕后,在终端中输入sqlmap -u '.'测试下是否能正常使用:

安装成功

看到黄色的Banner说明安装成功。

三、dvwa的部署和使用

DVWA是什么?

DVWA(Dam Vulnerable Web Application)是用PHP+Mysql 编写的一套用于常规WEB漏洞教学和检测的WEB脆弱性测试程序。包含SQL注入XSS、盲注等常见的一些安全漏洞。

实验楼的这个项目课程已经从dvwa官网下载并添加了简单的部署脚本,按照以下步骤部署dvwa到实验楼环境中:

$ wget http://labfile.oss.aliyuncs.com/courses/645/dvwa_deploy.tar.gz
$ tar -zxvf dvwa_deploy.tar.gz
$ ./deploy.sh

分页阅读: 1 2
【声明】:8090安全小组门户(http://www.8090-sec.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们:邮箱hack@ddos.kim,我们会在最短的时间内进行处理。