CTF 实验吧 天网管理系统

本文介绍了一种利用MD5加密特性和PHP弱类型比较的漏洞来绕过认证的方法。通过寻找特定的字符串使其MD5加密后的值以0开头,结合PHP的弱类型比较特性,成功获取后台Flag。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.

点击登入系统,并没有反应

2.直接F12 查看源码

3.发现异常 有一段代码:<!-- $test=$_GET['username']; $test=md5($test); if($test=='0') -->

   要求用户名传入一个字符串,经过md5加密后要等于0。

   md5加密自行百度就可得知

4.插播一段有关于 PHP弱类型的相关知识

  在php中

== :  比较运算符号  不会检查条件式的表达式的类型

===:  恒等计算符 , 同时检查表达式的值与类型。(会检查表达式类型,如bool)

比如:

* 当php进行一些数学计算的时候,当有一个对比参数是整数的时候,会把另外一个参数强制转换为整数。

1 var_dump(0 == '0'); // true
2 var_dump(0 == 'abcdefg'); // true 
3 var_dump(0 === 'abcdefg'); // false
4 var_dump(1 == '1abcdef'); // true

* bool类型的true跟任意字符串可以弱类型相等

PHP会把类数值数据(如含有数字的字符串等)转换成数值处理,== 运算符就是其中之一。

在使用 == 运算符对两个字符串进行松散比较时,PHP会把类数值的字符串转换为数值进行比较,

如果参数是字符串,则返回字符串中第一个不是数字的字符之前的数字串所代表的整数值。比如: '3' == '3ascasd'结果为true。

因此只要找到一个字串加密后第一个字符为0即可,这里提供几个:240610708,aabC9RqS 可以验证

5.username=240610708

 可得到提示 /user.php?fame=hjkleffifer

6.访问可得到 ctf5.shiyanbar.com/10/web1/user.php?fame=hjkleffifer

$unserialize_str = $_POST['password'];

$data_unserialize = unserialize($unserialize_str);

if($data_unserialize['user'] == '???' && $data_unserialize['pass']=='???')

{ print_r($flag); }

伟大的科学家php方言道:成也布尔,败也布尔。回去吧骚年

理解这段代码:

7.插播关于php 序列化与反序列化
serialize() 对输入的数据进行序列化转换
unserialize() 恢复原先变量,还原已经序列化的对象。

8.题目意思就是post提交的password值经过"反序列化"得到一个数组,要求数组里的user和pass都等于某个值时就打印flag。

9.php代码:

或者通过构造:借一句话 成也bool  败也bool bool类型的true跟任意字符串可以弱类型相等。可以构造bool类型的序列化数据 ,无论比较的值是什么,结果都为true。(a代表array,s代表string,b代表bool,而数字代表个数/长度)

10.得到password:

a:2:{s:4:"user";b:1;s:4:"pass";b:1;}

11.输入:得到flag:ctf{dwduwkhduw5465}





### 青少年CTF比赛文章管理系统的构建指南 对于希望创建专门用于管理和发布青少年CTF(Capture The Flag)竞赛相关内容的文章管理系统而言,可以从几个关键技术角度出发来设计和实现这一平台。这类系统不仅能够帮助组织者高效地整理并分享赛事信息、教程和技术文档,还能促进参赛者的交流与学习。 #### 1. 功能需求分析 一个理想的青少年CTF比赛文章管理系统应当具备如下核心功能: - 用户注册登录模块:支持选手通过邮箱或第三方社交账号完成身份验证过程[^2]。 - 文章分类浏览机制:允许访问者按照不同的主题领域如Web安全、逆向工程等快速定位所需资料[^3]。 - 搜索引擎优化特性:确保网站上的每篇文章都能被搜索引擎有效索引,提高外部可见度[^4]。 - 社区互动组件集成:鼓励读者评论留言以及点赞收藏优秀作品,增强社区活力[^5]. ```python from flask import Flask, render_template, request, redirect, url_for app = Flask(__name__) @app.route('/') def index(): return render_template('index.html') if __name__ == '__main__': app.run(debug=True) ``` 此段代码展示了如何利用Flask框架搭建简单的Web应用入口点,在实际开发过程中还需要进一步完善路由配置和服务端逻辑处理部分。 #### 2. 技术选型建议 为了满足上述提到的各项要求,推荐采用现代化的技术栈来进行项目实施: - **前端界面**:React.js 或 Vue.js 可以为用户提供流畅的操作体验;Bootstrap CSS 则有助于加快页面布局的设计速度[^6]. - **后端服务**:Python 的 Django/Flask 框架非常适合用来编写RESTful API接口,而Node.js配合Express也能很好地胜任这项工作[^7]. - **数据库存储**:MySQL或者PostgreSQL作为关系型数据库能提供稳定的数据持久化方案;MongoDB这样的NoSQL选项则更适合非结构化的富媒体资源保存[^8]. #### 3. 安全措施考量 鉴于CTF本身就是一个信息安全领域的竞技活动,因此在建设配套的内容平台上更应该重视安全性: - 实施严格的输入校验策略防止XSS攻击; - 对敏感操作采取二次确认流程减少误操作风险; - 使用HTTPS协议保障数据传输的安全性[^9];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值