实验吧-天网管理系统 Writeup
这个题真是折腾了我一个夜晚,感觉网上的东西太多“人云亦云”,服了。
思路
- 链接:http://ctf5.shiyanbar.com/10/web1/index.php
- 进入后默认就有用户名和密码,登陆后没变化 ,就直接扔到burpsuite中去了。
- 在源代码中看到了注释,要求将username做md5后和0做比较相等。很明显,正常情况下这是不可能的,我第一反应就想起来了前几天做mysql中的弱类型比较,用字符串和数字比较,是先讲字符串转化和数字再比较的。于是就去找了一个以0开头的md5值。
- 于是在burpsuite中进行提交,但是结果和预想的不一样,并没有什么变化。
- 同时也多试了下其它的字符串,均不可以,在网上的其它writeup中看了下,基本都是这个说法,弱类型比较。但是他们提供的字符串就可以成功的。
- 后来发现根本就是他们搞错了,这里不是常规的弱类型比较,因为后面是和‘0’比较,不是0,也就是字符串比较字符串,不是字符串比较数字,所以常规的不太行,又看到有的writeup说要以0e开头才会这样比较成功,试了下仍然是失败的。
a1b2edaced
的md5是0E45EA817F33691A3DD1F46AF81166C4
,同样也是不行的。
- 实在想不通为什么自己构造的哪里有不一样,所以就去百度找了下资料,没发现什么具体说明,但是大量的样本让我发现了一个规律,这些md5值都是以0e开头的,后30位全是数字!!!
- 所以我得找一个开头为0e,后面30位全为数字的md5哈希值。。。
- 手动试了半天,感觉几乎不可能,于是去写了个脚本来跑,十分钟后,还没跑出来,于是改了下,就挂机睡觉了。。。。
import hashlib import time txt = 's' n = 0 t1 = time.time() while 1:md5 = hashlib.md5('{}'.format(txt).encode('utf-8'))print(md5.hexdigest())if md5.hexdigest()[0:2] == '0e' and md5.hexdigest()[2:].isdigit()==True:print('OK!','最后的字符串是{}'.format(txt))t2 = time.time()breakn = n + 1txt = 's'+str(n)+'e' t3 = t2 - t1 print("一共试了{}次".format(n+1)) print("一共花了{}秒".format(t3))
- 第二天早上起来看了下,算是跑出来了,字符串为s224534898e,但是一看次数,2亿多次。。。
- 继续,用自己算出来的字符串扔进去,这次终于OK了。。。不容易不容易
- 然后去访问提示的网页。
- 这里涉及到了序列化和反序列化,具体的可以看最后总结中的博客链接,这里就不多说了。要求就是一个数组里面的user和pass都等于???就行了。这里???应该是一个字符串吧,又是弱类型比较,那么这里和数字0比较,字符串转换失败都会为报错(我想我应该不会这倒霉,这字符串是以数字看开头且不是0的吧~~),写了个php将数组转成了序列化
Array ( [user] => 0 [pass] => 0 ) a:2:{s:4:"user";i:0;s:4:"pass";i:0;}
- 将序列化的结果填到密码中去,啊哈哈,搞定~
总结
- 弱类型比较,链接:https://baynk.blog.csdn.net/article/details/99709333
- php序列化和反序列化,链接:https://baynk.blog.csdn.net/article/details/99712035
- 最后,看其他人的writeup的时候,其实最后的反序列化有更好的选择,利用任何字符串都和bool值的True相等的特性来完成需求会更靠谱,因为这样不用期待字符串开头是数字且不是0了~
实验吧-天网管理系统 Writeup相关推荐
- 实验吧之【Forms、天网管理系统】
Forms 原题链接 http://ctf5.shiyanbar.com/10/main.php Form 其实是个提示,代表html表单 F12 查看源码,发现 <input name=&qu ...
- php逻辑难是难在sql,[实验吧] 所有web writeup
实验吧 writeup 打算把实验吧所有的web题做一遍 花了一个礼拜多的时间吧 有些也看了wp不得不说收获挺大 WEB 简单的登录题 F12看下网络里面里面的请求头中有一个tips:test.php ...
- 开发实验实训管理系统
湖北襄樊石开网络科技提供专业的学生实验(训)室设备信息管理系统软件等各种实验室信息化管理软件,加强实验(训)室信息化建设,加强了学院管理.定制管理软件首选石开! 开发实验实训管理系统,目的是规范学院的 ...
- springboot实验课程辅助管理系统 毕业设计-附源码191113
实验课程辅助管理系统的设计与实现 摘 要 科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用.信息时代的到来已成为不可阻挡的时尚潮流 ...
- C语言实验设备预约管理系统
C语言实验设备预约管理系统 一.实验设备预约管理系统1.设计目标 基于c语言技术设计并开发实验设备预约管理系统. 2.系统要求 1)系统以菜单方式工作,包括系统主菜单,子菜单. 2)系统包括实验设备管 ...
- 数据库综合实验——网上书店管理系统
数据库综合实验13--网上书店管理系统 实验要求:给出网上书店管理系统的需求分析报告(见四),要求根据功能分析和数据分析设计概念模型,实现完整的数据库(包括:各种表,视图,必要的存储过程,触发器等). ...
- 武汉理工大学计算机基础与编程综合实验——网吧计费管理系统第二个版本
文章目录 前言 系统需求分析和注意事项 具体实现(链表基本操作) model.h AMS.cpp cardList.cpp CardListInit() addNewCard() displayCar ...
- 西电数据库实验-学生学籍管理系统 数据库设计
西电数据库实验-学生学籍管理系统 数据库设计 文章目录 西电数据库实验-学生学籍管理系统 数据库设计 需求分析 实体集 联系集 概念结构设计 逻辑结构设计 实体集 department(id‾,nam ...
- jsp实验报告批阅管理系统
传统的教学方式表现出在老师和学生不能同步:例如:实验报告必须由人上交.提问只能在课堂上提出:这样既浪费了各自的时间又使教学效率变得较低.而本系统的设计,实现了电子教学的教学方式:它可以随时随地让学生和 ...
- jspjava毕业设计实验报告批阅管理系统
本课题设计研发了一套基于Web技术的实验报告批阅管理系统.本系统的用户主要包括系统管理员.学生用户和教师用户,管理员模块的功能主要包括修改登录密码.老师信息管理.学生信息管理,学生用户模块的功能主要包 ...
最新文章
- Docker 数据卷之进阶篇
- 十个效果酷炫的Linux系统操作指令(像黑客帝国般的效果~)
- Linux系统运维工程师PDF文档精选
- 语义匹配(二)搜狐文本匹配大赛BaseLine比较:P-tuning和Conditional_LN实现多任务语义匹配
- 怎么在电脑安装php文件夹在哪个文件夹,php进行文件上传时找不到临时文件夹怎么办,电脑自动保存的文件在哪里...
- STL中vectortype的复制
- 数组引用--冒泡排序 数组倒置为例
- 帆软数据集函数ds1.select()和ds1.group()函数的使用
- 关于微信和微信小程序
- RSE2021/云检测:Automatic cloud and cloud shadow detection in tropical areas用于PlanetScope热带地区自动云和云阴影检测
- 钛媒体2022 EDGE AWARDS全球创新评选之「年度最佳企业服务品牌」揭榜
- nginx.pid-nginx: [error] open() /var/run/nginx.pid failed (2: No such file or direc
- 外行学计算机,《新手无忧学电脑:外行入门学电脑(2008至尊经典版)》低价购书_计算机与互联网_孔网...
- [转]数据的游戏:冰与火
- STM32模拟串口驱动(带校验位)
- 国内头部游戏本地化服务商 安睿杰本地化翻译
- 日志20140704~1226
- 【Matlab】将.mat文件转换为多个excel文件
- 什么东西改善睡眠?大多数失眠人群都不知道的好物
- 凸印的印刷原理及工艺介绍