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

BUUCTF [MRCTF2020]Ez_bypass 1

题目环境:
image.png
F12查看源代码
image.png

I put something in F12 for you  
	include 'flag.php';  
$flag='MRCTF{xxxxxxxxxxxxxxxxxxxxxxxxx}';  
if(isset($_GET['gg'])&&isset($_GET['id'])) {  
	$id=$_GET['id'];  
	$gg=$_GET['gg'];  
	if (md5($id) === md5($gg) && $id !== $gg) {  
		echo 'You got the first step';  
		if(isset($_POST['passwd'])) {  
			$passwd=$_POST['passwd'];  
			if (!is_numeric($passwd))  
			{  
				if($passwd==1234567)  
				{  
					echo 'Good Job!';  
					highlight_file('flag.php');  
					die('By Retr_0');  
				}  
				else  
				{  
					echo "can you think twice??";  
				}  
			}  
			else{  
				echo 'You can not get it !';  
			}  
		}  
		else{  
			die('only one way to get the flag');  
		}  
	}  
	else {  
		echo "You are not a real hacker!";  
	}  
}  
else{  
	die('Please input first');  
}  
}Please input first 

PHP代码审计

分析源码关键点
获取flag的思路:
需要满足两个条件:
GET传参方式
- “===”;md5值强对比;id与gg的值不能相等;可通过数组并赋不同的值进行绕过。

POST传参方式

  - !is_numeric函数决定了passwd参数的值是数字或数字字符串,加个!就是相反的意思,如果passwd是数字字符串并等于1234567那么就会输出flag的值,如果不是那么就会进入else语句。

火狐浏览器传参
GET payload:
?id[]=1&gg[]=2
POST payload:
passwd=1234567a
image.png
得到flag:
flag{95c8f35d-4ce2-4ba8-a849-2bbd941a75ea}


http://www.kler.cn/a/148163.html

相关文章:

  • C语言 | Leetcode C语言题解之第556题下一个更大元素III
  • 曹操为什么总是亲征
  • PHP多门店医疗服务系统小程序源码
  • 微服务(二)
  • vivo 游戏中心包体积优化方案与实践
  • Redis高可用-主从复制
  • npm管理发布包-创建与发布
  • python:range函数的使用
  • 蓝桥杯-01简介
  • 「江鸟中原」有关HarmonyOS-ArkTS的Http通信请求
  • 获得文件MD5——校验完整性 window 和 Linux下操作
  • 2023亚太地区数学建模C题思路分析+模型+代码+论文
  • oracle 表树形结构查询递归查询
  • 学习知识回顾随笔(远程连接MySQL|远程访问Django|HTTP协议|Web框架)
  • assert
  • Nevron Vision for .NET 2023.1 Crack
  • vue脚手架的基础搭建过程
  • Android frameworks 开发总结之九(Settings)
  • electron入门(一)环境搭建,实现样例
  • Rust UI开发(四):iced中如何添加菜单栏(串口调试助手)
  • 【React】打包优化-配置CDN
  • 002、ArkTS
  • 计算机基础知识59
  • python循环
  • ESP32-Web-Server编程- JS 基础 4
  • 从赛车到服务台:IT团队可以从F1赛车中学到什么?