ctf writeup之程序员密码
起因
在v2ex上看到有人发了一篇帖子,说做了一个程序员小游戏,遂试玩了一下。
游戏的地址在这里: http://www.bettertomissthantomeet.com/pages/level.html
第零关
控制台打印的字符“Hello, world!”,复制粘贴通过。
第一关
控制台又打印了一串字符:
看着像base64,拿去解码,得到“I'm a programmer.”,复制粘贴通过。
第二关
为毛又是控制台打印…
拿去base64解码,得到“ping www.programmerpassword.com”,遂ping了一下:
将ip地址“47.104.152.148”复制粘贴通过。
感觉这个设计得不太好,因为一般ping的话是为了看ttl延时,少数情况是为了解析到ip地址,不过好歹也能够联想到。
第三关
这次控制台没有输出了,并且页面上也没有啥提示,于是ctrl+shift+c选了下提交按钮,然后看到了
这是一个透明元素,所以页面上看不到,复制“123456”粘贴没通过….需要完整的复制“密码是123456”粘贴提交才能通过,作者很顽皮啊。
第四关
这次还是老的套路,控制台打印了一串十六进制数:
拿去解码(关键词十六进制转字符串),将“4275672072756e6e696e67”转为字符串“Bug running”,复制粘贴通过。
第五关
选一下这个井号:
看到有一个样式是rgb(r,g,b)这种格式指定的,然后页面上又是一个大大的井号,遂将“rgb(47, 69, 132)”拿去rgb转hex,得到“#2F4584”,但是很悲剧的事情是作者的判断正确的方法是将我们提交得的答案md5和正确答案的md5进行比对,所以就没办法兼容大小写这种情况,这个是我想吐槽的第一点。然后我想吐槽的第二点是没有办法兼容大小写就算了标准答案还是非主流的小写…hex的A-F很少有用小写的,所以就导致大多数人都会被坑一下…
提交“#2f4584”通过。
第六关
控制台打印了一堆东西,很明确表示这是base64。然后观察base64的开头和img的src base64很像,遂拿去放到一个html中:
<!DOCTYPE html>
<html>
<head><title></title>
</head>
<body>
<img src="https://img-blog.csdnimg.cn/2022010621382118313.png"></body>
</html>
打开这个html:
提交“463700”通过。
第七关
有个挂掉的图片:
然后切换到network看一下:
发现这明明是个doc类型的好吧,然后手动打开:
提交“better to miss than to meet”通过。
第八关
页面上显示了一行字:
控制台也有输出:
遂在控制台使用getPassword()方法解密(别问我怎么知道的,因为我读了这个js…):
提交“25LTQWMP9Y”通过。
第九关
这关是设计得还比较好的,因为所使用的技术的特点体现的非常好。
页面上就这么一张图片:
看了半天,以为玄机在图片上的代码里,还去看了PDO的相关资料….代码成功的吸引了猿类的注意力,如果是一张风景图之类的恐怕就能够秒想到图片隐写术。
右键把图片保存到本地,然后使用winhex打开,搜索FFD9找jpg图片的结尾。
jpg文件有一个特点就是以FFD9为结束符,结束符之后的内容就直接无视,利用这个特性可以往尾部藏一些东西。
下图中高亮的部分都是会被无视的内容:
这是两行命令,最有可能的答案就是这两行命令的输出了,来分析一下可能会输出什么:
cd /data/log/../www/
pwd
log会被..约掉,所以是cd /data/www/然后用pwd输出当前路径,Linux下pwd是不会带最后的斜线的,所以最终的输出就是“/data/www”,提交通过。
不足
核心的判断逻辑在这个js中:http://www.bettertomissthantomeet.com/static/js/app/level.js,将判断放在前端还很齐齐整整,人家只要阅读一遍这个js就大概了解了,这样大大降低了难度不太好。
不过最后的隐写术真的很6,成功误导我在PDO的方向上越走越远,花了一大会儿时间才想到….
.
转载于:https://www.cnblogs.com/cc11001100/p/8764153.html
ctf writeup之程序员密码相关推荐
- 程序员生活智慧集——卓越程序员密码
这本小书名叫<卓越程序员密码>,但大部分内容讲的不是具体的技术.书中的话题涉及程序员生活的方方面面,每个话题独立成篇.言简意赅,读来多有切身之感,引人思考.譬如每日邮件繁忙,电话不断,如何 ...
- 读书笔记_卓越程序员密码
The Pragmatic Programmers 图灵程序设计丛书 卓越程序员密码 The Developer's Code What Real Programmers Do Author: Ka ...
- 面试经之给刚毕业的大学生和刚入门的程序员的忠告及图书推荐
从11岁时,我就一直在编程,并且一直都很喜欢技术和编程.这些年来,我积累了一些艰难又容易的经验.作为一名程序员,你或许还没这些经验,但我会把它们献给那些想从中学到更多的朋友. 我会持续更新这些经验,我 ...
- 程序员必备基础:如何安全传输存储用户密码?
前言 我们开发网站或者APP的时候,首先要解决的问题,就是「如何安全传输和存储用户的密码」.一些大公司的用户数据库泄露事件也时有发生,带来非常大的负面影响.因此,如何安全传输存储用户密码,是每位程序员 ...
- 心急如焚!程序员拥有 2.2 亿美元巨款,却想不起密码
整理 | 王晓曼 出品 | 程序人生 (ID:coder _life) 如果你账户里有2.2亿美元却想不起密码,你会怎么办? 1月13日,据凤凰网科技报道,美国旧金山一程序员斯蒂芬·托马斯忘记了装有7 ...
- 黄道十二宫杀手密码51年后被破解,来自两位程序员与数学家通力合作
杨净 边策 发自 凹非寺 量子位 报道 | 公众号 QbitAI 黄道十二宫杀手(Zodiac Killer)可能是世界上最知名的高智商连环杀手,52年来从未被抓获.他的事迹已被改编成了多部好莱坞电影 ...
- mac bash file密码_Mac系统 | 菜鸟程序员项目模拟数据迁移,会安装Mysql服务端吗
在中小公司做项目,关系型数据库一般用的比较多的是MySQL.项目从开发到上线的过程中,公司会提供虚拟机服务器数据库中的数据给自己进行本地开发和测试.在开发过程中,我也发现公司只是提供数据库服务端的ip ...
- 圆周率里有每个人的银行卡密码和生日?混知乎的程序员果然都是神一般的存在...
有人好奇,既然圆周率是无限不循环小数,会不会包括这个世界上的任何信息,包含了这个世界? 能否包含"任何信息"不好说,但一个冷知识是,圆周率里有每个人的银行卡密码!不信?看看这位来自 ...
- 程序员是如何处理密码的?
数据大爆炸时代,信息泄露事件屡见不鲜.作为程序员,从自身做起,有什么加固信息保护的方法吗?事实上,复杂且好记的密码就是必备手段之一. 作者 | Nathilia Pierce 译者 | 弯月,责编 | ...
最新文章
- IC基础知识(1)集成电路(IC)简介
- 从ResultSet 说起
- Windows XP时代终结:假设你还在用它怎么办
- java多维数组按照某一列排序,PHP实现二维数组按某列进行排序的方法
- Linux 命令之 typeset -- 声明 shell 变量,设置变量的属性
- Microsoft Visual Studio 文件识别及其用途简述
- 简单粗暴入门JAVA之方法
- 网管,请别随意关闭默认共享
- OpenShift 4.10 不可变新特性 - 利用 MachineConfig 发现节点配置漂移
- day10作用域与闭包
- SAP License:SAP软件功能有哪些?
- 传感器系列之4.6雨滴传感器
- Springer Evolutionary Intelligence投稿,提交Latex文件记录
- 创建个人网页,创建个人网址。
- 哥吃的不是饭,是农药~~!是化肥~~!是激素~!!
- spring应用手册-IOC(XML配置实现)-(8)-bean中的scop属性
- PicPick 5.1.3 中文版,一个全功能的屏幕截图工具,图像编辑器,颜色选择器
- 关于电影票对接公众号cps
- HDU-5868-Different Circle Permutation(快速幂求fib,单数欧拉函数(1e9规模),oeis)...
- 曼谷周末游(r5笔记第74天)