博客
关于我
安全测试入门——sqlmap的简易使用
阅读量:415 次
发布时间:2019-03-05

本文共 2062 字,大约阅读时间需要 6 分钟。

SQL注入与Sqlmap使用指南

一、SQL注入概述

SQL注入是一种Web应用安全漏洞,攻击者通过将SQL命令注入到查询字符串或URL参数中,欺骗服务器执行恶意的SQL语句。这种攻击方法常见于Web应用中对用户输入没有适当过滤的情况。

SQL注入原理

SQL注入的核心在于通过修改查询参数,使得服务器执行异常的SQL语句。例如,一个正常查询可能类似于“SELECT * FROM groups WHERE groupid=13634”,而注入后可能变成“SELECT * FROM groups WHERE groupid=-1 OR 1=1”。由于1=1总是为真,这条查询将返回所有数据。

常见注入手法
  • 简单注入:通过修改参数值来执行恶意查询。
  • 关联操作:利用数据库函数进行复杂操作。
  • 绕过验证:利用注释符号或其他技巧避开防护。
  • 删除操作:删除数据库中的数据。
  • 资源枚举:获取数据库信息或其他资源。

攻击者可能利用这些手法来窃取敏感数据或破坏数据库。

二、Sqlmap环境搭建

Sqlmap简介

Sqlmap是一款自动化SQL注入工具,支持多种数据库类型和注入方式。常见注入方式包括:

  • 布尔盲注:通过URL返回状态判断注入结果。
  • 时间盲注:利用查询时间差异判断注入成功。
  • 报错注入:通过错误信息判断注入结果。
  • 联合查询注入:利用UNION操作执行多条查询。
  • 堆查询注入:同时执行多条查询。
环境搭建步骤
  • 安装Python:版本为2.7及以上。
  • 安装Git:用于克隆Sqlmap代码库。
  • 克隆Sqlmap:在Git终端输入git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
  • 运行Sqlmap:进入Sqlmap根目录,使用命令python sqlmap.py -h查看帮助信息。
  • 三、Sqlmap使用示例

    基本使用

    样本1:GET接口

    • URLhttps://www.baidu.com/api/groups?groupid=13634
    • cookiewps_sid=123456

    运行命令:python sqlmap.py -u "https://www.baidu.com/api/groups?groupid=13634" --cookie="wps_sid=123456" --batch

    样本2:POST接口

    • URLhttps://www.baidu.com/api/v3/groups/51183/files/351748
    • cookiewps_sid=123456
    • body{"fname": "我的团队"}

    运行命令:python sqlmap.py -u "https://www.baidu.com/api/v3/groups/51183/files/351748" --cookie="wps_sid=123456" --data="body" --batch

    参数详解
    • 基本选项

      • -h:查看基本帮助。
      • -hh:查看详细帮助。
      • --version:查看Sqlmap版本。
      • -v LEVEL:设定扫描详细级别(0-6,默认为1)。
    • 目标选择

      • -u URL:指定测试URL。
      • --url=URL:同上。
      • -m FILE:批量测试,FILE中包含多个URL。
      • -l FILE:批量测试,FILE中包含多个接口,URL间用分隔符分隔。
    • 请求设置

      • --data=DATA:指定POST接口的body。
      • --cookie=COOKIE:指定接口的cookie。
      • --random-agent:使用随机的HTTP User-Agent标头。
      • --proxy=PROXY:指定接口代理。
      • --tor:使用Tor匿名网络。
      • --check-tor:检查Tor是否正确使用。
    • 注入设置

      • -p TESTPARAMETER:指定测试接口的参数。
      • --dbms=DBMS:指定测试的数据库类型。
    • 枚举注入

      • -a:检索所有内容。
      • --current-user:检索数据库当前用户。
      • --current-db:检索当前数据库。
      • --passwords:枚举数据库用户密码哈希值。
      • --tables:枚举数据库表。
      • --columns:枚举数据库表列。
      • --schema:枚举数据库架构。
      • --dump:查询某数据库表的数据。
      • --dump-all:查询所有数据库表的数据。
      • -D DB:查询指定数据库的数据。
      • -T TBL:查询数据库中指定表的数据。
      • -C COL:查询数据库中指定表列的数据。
    • 其他设置

      • --batch:自动选择默认选项,无需用户输入。
      • --smart:在积极启发式情况下进行彻底测试。

    四、总结

    通过上述指南,可以了解SQL注入的原理、常见手法以及使用Sqlmap进行自动化注入测试。熟悉这些工具和技术对于Web安全测试至关重要。建议结合实际案例练习,逐步掌握SQL注入的防护技巧和工具使用方法。

    转载地址:http://tbczz.baihongyu.com/

    你可能感兴趣的文章
    No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android
    查看>>
    NO.23 ZenTaoPHP目录结构
    查看>>
    no1
    查看>>
    NO32 网络层次及OSI7层模型--TCP三次握手四次断开--子网划分
    查看>>
    NOAA(美国海洋和大气管理局)气象数据获取与POI点数据获取
    查看>>
    NoClassDefFoundError: org/springframework/boot/context/properties/ConfigurationBeanFactoryMetadata
    查看>>
    node exporter完整版
    查看>>
    Node JS: < 一> 初识Node JS
    查看>>
    Node Sass does not yet support your current environment: Windows 64-bit with Unsupported runtime(72)
    查看>>
    Node 裁切图片的方法
    查看>>
    Node+Express连接mysql实现增删改查
    查看>>
    node, nvm, npm,pnpm,以前简单的前端环境为什么越来越复杂
    查看>>
    Node-RED中Button按钮组件和TextInput文字输入组件的使用
    查看>>
    Node-RED中Switch开关和Dropdown选择组件的使用
    查看>>
    Node-RED中使用html节点爬取HTML网页资料之爬取Node-RED的最新版本
    查看>>
    Node-RED中使用JSON数据建立web网站
    查看>>
    Node-RED中使用json节点解析JSON数据
    查看>>
    Node-RED中使用node-random节点来实现随机数在折线图中显示
    查看>>
    Node-RED中使用node-red-browser-utils节点实现选择Windows操作系统中的文件并实现图片预览
    查看>>
    Node-RED中使用node-red-contrib-image-output节点实现图片预览
    查看>>