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

XYCTF2024

1,XYCTF2024-ezhttp

访问是一个登录框,先右击看一下源码

看到提示,又翻看了f12,没有什么发现,扫一下目录

扫到了一个robots.txt和flag.php

访问

得到账号密码

出现这种情况抓包

更改Referer,Referer它是当前请求页面的来源页面的地址

更改ua头,它包含了操作系统,浏览器等信息

试了一下xff头,发现不行,xff头 用于标识通过代理服务器连接到 web 服务器的客户端的原始 IP 地址的标头。

一些代理服务器会将客户端的IP地址放在Proxy-Client-IP请求头中。

下面链接有很多类似的请求头

获取客户端真实IP地址的HTTP请求头_wl-proxy-client-ip-CSDN博客

via用于表示请求或响应经过的中间节点,通常被代理服务器使用。

根据提示,我们更改一下cookie

2,XYCTF2024-ezMake

在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能。

函数调用,很像变量的使用,也是以 $ 来标识的,其语法如下:

$(<function> <arguments>)

shell函数也不像其它的函数。顾名思义,它的参数应该就是操作系统Shell的命令。

通过shell函数执行命令

使用函数 — 跟我一起写Makefile 1.0 文档

3,ezmd5

随便上传了两张图片,出现的结果

应该是要让两张图片的md5一样

通过fastcoll生成jpg的图片进行碰撞,就能获取到flag

MD5碰撞原理简单介绍及其实现 - wysng - 博客园

4,warm up

前面两个代码可以直接看出来是md5之间进行比较,而且是弱比较

md5强比较,弱比较

强比较:使用三个 ''==='' 比较,比较值,也比较类型

弱比较:使用两个 ''=='' 比较,只比较值,不比较类型

  • 0e绕过的原理

科学记数法是一种记数的方法。

计算器表达10的幂一般是用E或e

如:2 760 000 = 2.76×10^6 = 2.76e6

所以0e,无论后面跟什么值,都是0

加密后的密文 原值

QNKCDZO 0E830400451993494058024219903391

240610708 0E462097431906509019562988736854

s878926199a 0E545993274517709034328855841020

s155964671a 0E342768416822451524974117254469

s214587387a 0E848240448830537924465865611904

绕过了第一个if

绕过第二个if, 因为md5("0e215962017")=0e291242476940776845150308577824

绕过第三个if, 覆盖XY和XYCTF然后0e比较

/e 修正符使 preg_replace() 将 replacement 参数当作 PHP 代码(在适当的逆向引用替换完之后)

?a=/test/e&b=system('cat /flag');&c=test

preg_replace /e 模式 漏洞分析总结 - 猪猪侠的哥哥 - 博客园


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

相关文章:

  • 面试之《TypeScript泛型》
  • PostgreSQL 18新特性之虚拟生成列
  • [mybatis]resultMap详解
  • rdiff-backup备份
  • 【鸿蒙开发】Hi3861学习笔记- GPIO
  • Android 滑块开关 自定义Switch
  • 解决Element UI的el-date-picker组件默认值为当天日期但选择后不回显的问题
  • 每天一道算法题【蓝桥杯】【在排序数组中查找元素的第一个位置和最后一个位置】
  • 【MySQL篇】MySQL基本查询详解
  • 【推荐项目】Java的廊坊城市公交查询网站
  • 光谱相机检测肉类新鲜度的原理
  • 查看端口被占用命令
  • VMware安装Windows server 2016
  • # 如何确认elementary os (linux)使用的是Wayland而不是x11?
  • 【C语言】结构体篇
  • 联核科技AGV无人叉车能给企业带来哪些效益?
  • 【面试】JVM
  • 计算机考研C语言
  • C++设计模式-工厂模式:从原理、适用场景、使用方法,常见问题和解决方案深度解析
  • 工作记录 2017-01-04