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="data:image/png;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAAXAGQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9ffCf7ZE/in9ub4vfD3Zotp4H+DPhHRtV13VZmdbuLUr83k/lddn2eOyt45CxAbdN1IFexfDD4l6H8Z/hr4e8YeGNQj1bw34q0231fSr6NGRLy0uIllhlCsAwDI6thgCM8gGvzF/bn+J/xC/Yx+Ev7d974g+CPxA1XTfjXeSQ+GPFmiXOj3OmBbvQNO0CxFyrX8d8h+2qAUWBiBJlRivpT4Yft16B+zT/AMEyNf8AGGq+Avi14a074BeEobGfTfGHhl9B1DWXtLNI4lgGZImErqieZG7xoz/eIGaAPZP2tv24vAH7GOhaa/iq71HUfEniRpYPDXhLQbN9T8R+K7iNNzQWFlH88rDKhnO2KPepkkjU7q5v9kuD9orxz45n8dfF2+8HeCvDOq6ZJBp/ww0nTxfXuhymWJ4rm91nzts9yIxNHJDBCsALoVdyhZ/nT4If8Etv2jPCfj/VfjRd/tD+GtI+N/xBtbebxGLr4c2uuadpKZSRtCsppLlLmPS4WXYiRyo0jr5zlnOB9I/8E8P2pvEv7Tnws8V23jvStG0f4jfDDxdqHgbxZDo3mnSp760EUqXNn5pMgt57W4tp1VyXTzijEshoA9H+P3inx54Q+H5uvhx4Q0Xxv4na6ihj07VtfOh2axM2JJnuVt7hgEXnasTFjxx1r5q+Ov7c37SH7K/wf8Q/Efx7+z98Mz4I8F2T6trzaB8WZLrU4bGIbp5LeG50m2hmkSMMwiaeMyFdqncyg+l/tpfB/wCKXjq5stZ8GftJT/AXw5pFtjUwnhTSNVS6cuf3r3GoKyxLhlXAA5AOeSK+IP2KvgnoP7Xv/BS/4haR8Q/ixJ+2r4F8D6PpniLR/El1csPDfhHWzNcwtpb6fZSf2LeXJgdbgSiDzISuCqsoagD9UfC/iK38X+GdO1a080WmqWsV3D5iFH2SIHXcp6HBGR2r4w/ak/4KCftM/sjfDjxZ428S/s0/De88FeENNudZvtXs/jKI1gtoQ7FTFNpCSNMVUbUjVtzSKq5Y4r7dAwK+OP8AgoI8v7Xf7Unws/Zi09YX0Waa1+KPxJlmQyRroGmX8bWWnFCu121DUoo1OXGILK7O1jjAB9S/CLxpffEf4UeGPEOqaDqHhbU9e0m11G70W+ObrSJpoUke1l4H7yJmKNwOVNfPGkf8Fkvgpq/xRl8O/aPHFnpKeJJfB6eMbvwjqMHhGfV45zbNZrqzRfZt5nVolYuEd1wrHIJ7P/gpd8evFH7Nn7EvjXxL4Ghin8d3IsvD3hjzghih1bVL630yylkDgqUjubuKRgwIKoRg9Kh8Kf8ABOv4XeC/+Cf0v7POpacurfD658Py6RrU18UF1q0kqlrnUp5cf8fkkxa4MwwVlIddpVcAHvgOa8q8f/t0/BX4UfF228AeKPi38NvDvji8aFIdA1PxJZ2upSNNjyVEDyB90mRsGMtuGM5FeX/8E3/2mtZ1v/gkB8LPiz8Tbu8utTt/h3Br+u30qM1xexwWpka5YHl5JYoxIT/EzkgAECuC/wCCXf7DHgr4kf8ABM7Sb34p+C/DPizxF+0RaP4+8evqFmtydVu9WJvAjM+51WCKaKKIBsxiFSDuy5APuKivmL/gkDrmq6h+xLZ6Xqus6rr58GeK/FHhGwvtUn+0X0thpmv6hYWazy4HmyJbW8KFyMtsycsSSUAehftjfsvzftaeCfCfh5vEP9h6VonjXQvFeq27WC3kevW+mX8V8NPdWZQiSzQQkvhsBMbTnj0Px/4A0T4q+CNV8NeJtJ07XvD+u2sljqOnX8Cz217BIpV45EYFWVgSCCKKKAPky2/4Izad4SjGn+Cf2jf2rfh94VtQsem+G9H8dxXGnaNCqhVgt2vbW4uFiAHCNMwXOBgYA9s/Yx/Yw8PfsSfD/XtE0TXvGPiy/wDFmv3HifXte8U6kL/VdZ1CaOGFppXVI4xiG3gjVY40ULEOCxZiUUAc18Xv+CWXwN/aH+Pj/Ej4jeDW+Ievgx/ZrPxNqt5quiaeEhEIEGlzStZRggFjiHl2Z/vMSfbvAvgHQvhf4TstB8NaLpPh3Q9NQx2mnaZZx2lpaqSSVjijARBkk4AHJNFFAGtXz1+z7+z/AOL/AAt/wUD/AGiPiZ4jhtI9B8ZWnhjQfCbJdLLNJZadZ3Es7ugH7oG8v7hQCct5W7ABXJRQB6H+1T+zR4c/bB+AXiH4deKpdYtdI8QRxEXmkXrWWo6ZcwTR3FreW0y8xzwXEUM0bEMu+JdysuVPzJ8WP2ef229d+E/ij4c6d8WPgX4m0bxBpd1o8XjLWvDd/pfia2huYniMzwWkpsnuYlclXRYo3ZVJiQZFFFAH0j4d/ZW8OeGv2ObH4IwvfHwlY+DU8EI4dVuTYrZCy3bgMCTyhnIGM9q+cvgv8M/2zv2ZvgNpfwo0a0/Z18aWfhTS7bw94a8c3ur6ro9xDZ28EcEVxfaMlpOks4VMlIb6NHIHzRg8FFAH0H+xV+y7F+x1+zrpHgY+ItR8X6lBdX2raxrt9BFbzazqd/eTX17c+TEBHCj3NxKyRJkIhVcsQWJRRQB//9k=">

</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

时间: 2024-10-09 10:45:56

ctf writeup之程序员密码的相关文章

西普ctf——《程序员的问题》

题目链接:http://ctf1.simplexue.com/web/4/index.php 刚开始看了题目“程序员的问题”,顾名思义,就想到了肯定是代码的问题. 于是怀疑应该是有sql注入点.用sqlmap测试了下. 然而并没有用,于是想到是不是要用所谓的“万能密码”sql语法来破解呢.查了一下资料.一个一个试.总算成功了 . 晚上看了好几道都没头绪,个别题看了大神写的writeup太深奥了.看不懂.终归还是自己的能力不够呀.瞬间心情就不美丽了.打算这星期多做点题,下星期ctf比赛结束后估计博

有人认为,“中文编程”是解决中国程序员编程效率的密码武器,请问它是一个“银弹”吗?

我个人认为不是. 首先解释一下“银弹”这个词.“银弹”一词常被用做致命武器的代言词,被比喻为具有极端有效性的解决方法,作为杀手锏.最强杀招.王牌等的代称.在该题目中“银弹”指的是一项可使软件工程的生产力提高十倍的技术或方法.可见要达到银弹一词的说法,对中国程序员来说,中文编程必须达到高效率.蜻蜓点水的效果才行.然而现实中的“中文编程”远远达不到这样的效果. 原因有如下: 因为编程是一种实现功能的逻辑编写操作,为解决功能性与需求性,能否实现主要在于代码设计与方法,语言作为一种表现形式对编程的影响并

[ctf分享]最新2016华山杯CTF writeup

[技术分享]最新2016华山杯CTF writeup 2016-09-11 13:06:28 来源:安全客-FlappyPig 作者:安全客 阅读:12099次 点赞(3) 收藏(82) 作者:FlappyPig 稿费:700RMB 投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿 2016 华山杯 网络安全技能大赛 解题报告 队伍: FlappyPig  Web渗透 0x01 打不过~ 添加type=”submin”,点击提交抓包 有一串字符串,base64->md5,19

【程序员眼中的统计学(7)】正态分布的运用:正态之美

正态分布的运用:正态之美 作者 白宁超 2015年10月15日18:30:07 摘要:程序员眼中的统计学系列是作者和团队共同学习笔记的整理.首先提到统计学,很多人认为是经济学或者数学的专利,与计算机并没有交集.诚然在传统学科中,其在以上学科发挥作用很大.然而随着科学技术的发展和机器智能的普及,统计学在机器智能中的作用越来越重要.本系列统计学的学习基于<深入浅出统计学>一书(偏向代码实现,需要读者有一定基础,可以参见后面PPT学习).正如(吴军)先生在<数学之美>一书中阐述的,基于统

【非凡程序员】 OC第九节课 (KVO的应用)

这是一个QQ密码登陆地址和密码同时被修改时,通知用户QQ账号出现问题 该题难度主要在于判断监控的两次数据都是被修改的 有两种方案: ①定义一个可变的数组,把每次监控到的新旧数据添加进去,进行对比 ②定义一个变量,每修改一次,该变量就自加一次,判断为2时,通知用户 (1)main函数//  main.m//  QQ被盗////  Created by 非凡程序员 on 15/5/27.//  Copyright (c) 2015年 非凡程序员. All rights reserved.// #im

受康奈尔笔记法启发设计的程序员算法手写本

大多数程序员都习惯了平时在电脑上敲代码,但也有些情境要求我们手写代码,比如平时学习时做纸质笔记,完成老师布置的课程作业,同事之间交流讨论讲解思路,ACM比赛时手写分析算法,还有最常见的面试手写算法等.昨天看了康奈尔笔记法,觉得有点意思,于是想着把它应用到程序员的圈子里来,可以在面试等场合很好的向面试官阐述算法思路同时规范书写,希望能给大家带来一些帮助. 一.什么是康奈尔笔记法 图1.康奈尔笔记法 5R笔记法,又叫做康奈尔笔记法,是用产生这种笔记法的大学校名命名的.这一方法几乎适用于一切讲授或阅读

坚持住,慢慢来(送给大学的程序员)

开篇 作为一个计算机科学的学生,我们需要做的是找到一个自己感兴趣的路线,找到一个属于自己的学习方法,让兴趣驱动着自己,不断深入的探索.计算机的世界很奇妙,当你真正踏入进来后,你会感到它的魅力是无法形容的. 下面以我的个人经历为蓝本叙述一下一个计算机科学的学生的成长以及学习方法,仅为个人观点,希望能帮助到大家. 我们在学校首先接触的一般是C/C++或者是C#,我们学校就是以C为起点的.在国外的高校也有以python为起点的,但是国内却不多,所以在此我暂不供述,在我看来都很不错.首先,像C这样的静态

程序员客栈携手野狗 体验国内领先的实时后端云协作

近日,国内领先的实时后端云"野狗wilddog"与国内领先的软件众包平台"程序员客栈"达成战略合作,计划通过程序员客栈众包平台发布的开发项目以及依托用户层面庞大的开发者,让更多的开发者免费体验国内领先的实时后端云服务.同时也方便提升程序员客栈用户更多开发体验,此次程序员客栈布局Saas化服务合作,利用软件众包结合第三方开发调用的模式,寻求最大程度的降级技术的开发成本解决方案的战略,同时也使程序员客栈客户多了更多的开发选择. 布局企业Saas服务合作,提升高效开发体验

程序员带你学习安卓开发系列-Android文件存储

这是程序员带你学习安卓开发系列教程.本文章致力于面向对象程序员可以快速学习开发安卓技术. 上篇文章:.Net程序员快速学习安卓开发-布局和点击事件的写法 主要讲解了布局和点击事件的写法. 上篇文章补充: 控件单位介绍: px 像素 dip或者dp 设备独立像素 sp 比例像素 控件的高度宽度一般用dip或者dp.字体用sp. Android 存储数据项目: 描述:实现QQ登录效果.如图: 输入帐号密码,并勾选记住帐号 ,点击登录时,保存帐号信息.下次登陆可以直接显示上次保存的QQ帐号. 前台界面