博客
关于我
安全测试入门——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/

    你可能感兴趣的文章
    nrm —— 快速切换 NPM 源 (附带测速功能)
    查看>>
    nrm报错 [ERR_INVALID_ARG_TYPE]
    查看>>
    NS3 IP首部校验和
    查看>>
    NSDateFormatter的替代方法
    查看>>
    NSError 的使用方法
    查看>>
    NSGA-Ⅲ源代码
    查看>>
    nsis 安装脚本示例(转)
    查看>>
    NSJSON的用法(oc系统自带的解析方法)
    查看>>
    nslookup 的基本知识与命令详解
    查看>>
    NSNumber与NSInteger的区别 -bei
    查看>>
    NSOperation基本操作
    查看>>
    NSRange 范围
    查看>>
    NSSet集合 无序的 不能重复的
    查看>>
    NSURLSession下载和断点续传
    查看>>
    NSUserdefault读书笔记
    查看>>
    NS图绘制工具推荐
    查看>>
    NT AUTHORITY\NETWORK SERVICE 权限问题
    查看>>
    NT symbols are incorrect, please fix symbols
    查看>>
    ntelliJ IDEA 报错:找不到包或者找不到符号
    查看>>
    NTFS文件权限管理实战
    查看>>