第四届XCTF开始,首战因素,加上团队刚加入了两个新人的原因,还是决定一块参与一下。水了3题。2个RE和1个MISC,照顾新人,写的比较啰嗦。

[MISC] PY-PY-PY
  下载题目之后是一个pyc文件。使用反编译工具恢复,提示出错,编译出来的代码也有问题。就怀疑可能有别的东西,翻出了一篇“Python字节码中嵌入Payload的隐写”,下载所述的Stegosaurus利用之。

相关链接:http://www.freebuf.com/sectool/129357.html

[RE] BABYRE
  ELF,第一反应先用IDA的F5大法。加载结束,跟到主函数下面的一个函数,发现分析失败“sp-analysis failed”,F5无效。看着IDA已有的分析结果,用GDB去调。主函数代码非常简单,有一个跳转到分析失败的函数。关键跳转的条件也非常简单,由CMP指令决定,和0xE比较。前面的函数是一个strlen(),再往前是scanf()。这部分程序过程基本就清楚了,输入之后检查了字符串的长度,检测的地方就是CMP指令和0xE(十进制的14)比较。
  理顺了输入检验,GDB跟到那个IDA没有分析出来的judge()函数中。没有分析出来的地方是连续的赋值,这些值虽然不是flag格式,15个,前14个事非0值,还是比较可疑的。测试输入的是连续的数字,发现这些会被运算变成别的值,变化完之后会再判定,不符合则结束了。没有别的内容了,就把那14个字符输了进去,变化之后前4位就是flag,第5个值是0x7F,输入不进去,其实就是“{”的那一位随便找了一个满足条件的值,这里输了“1”。循环14次之后出flag。人为替换第五位即可。

[RE] CRACKME
  VC6的MFC程序,有点蒙,看着像输入SN然后进行判定的,还是纠结了一会有没有加载玄机,没有直接去调点击后的事件。逻辑就是检测输入的SN长度要满足33,并且之后会判定输入的内容。

  核心的函数就在0x401630处,断下来,其中有一个关键的比较:比较时,正确的值会在寄存器上。在那个比较的地方下端,运行33下就得出结果了。(其实是在数据段里的某个位置开始每次间隔10B取一次值)


flag{The-Y3ll0w-turb4ns-Upri$ing}

WHCTF2017线上小记的更多相关文章

  1. 关于解决python线上问题的几种有效技术

    工作后好久没上博客园了,虽然不是很忙,但也没学生时代闲了.今天上博客园,发现好多的文章都是年终总结,想想是不是自己也应该总结下,不过现在还没想好,等想好了再写吧.今天写写自己在工作后用到的技术干货,争 ...

  2. 分布式存储 FastDFS-5.0.5线上搭建

    前言:       由于公司项目需要,最近开始学习一下分布式存储相关知识,确定使用FastDFS这个开源工具.学习之初,自己利用VMware虚拟机搭建了一个5台机器的集群,摸清了安装过程中可能出现的问 ...

  3. 线上bug的解决方案--带来的全新架构设计

    缘由 本人从事游戏开发很多年一直都是游戏服务器端开发. 因为个人原因吧,一直在小型公司,或者叫创业型团队工作吧.这样的环境下不得不逼迫我需要什么都会,什么做. 但是自我感觉好像什么都不精通..... ...

  4. 线上应用bug跟踪查找-友盟统计

    线上的应用只要用心点点都能发现些bug,连微信,QQ也不列外.但是bug中最严重的算是闪退了,这导致了用户直接不能使用我们的app. 我们公司是特别注重用户反馈和体验的,我们会定期打电话咨询用户的使用 ...

  5. 【原】fiddler修改线上的内容

    摘要:当我们线上的代码出bug了,咋办呢?有时候本地的代码跟线上的代码还是运行环境还是有区别的.比如有些封装的方法需要运动到手机上可以调试,而浏览器是无法调试的.如果不想每次修改完再放上到测试环境看效 ...

  6. 【重装系统】线上Linux服务器(2TB)分区参考方案

    如果是线上服务器,假设它是 2TB 的 SATA 硬盘.8GB 内存,建议按如下方式进行分区: / 20480M(20G)(主分区) /boot 128M swap 10240M /data 2016 ...

  7. 软件工程线上课程(C语言实践篇)学习心得总结

    林牧 + 原创作品转载请注明出处 + <软件工程(C编码实践篇)>MOOC课程http://mooc.study.163.com/course/USTC-1000002006 软件工程的理 ...

  8. 一次线上http接口调用不通相关的解决过程

    2016-05-25 08:58:34 昨天线上小白系统因为调用外部http接口,超时不释放,导致页面反应很慢,时间一长,报502错误. 上网查了下,502错误是因为服务对于客户的请求没有得到及时的反 ...

  9. 线上mongodb数据库mLab使用总结

    最近在CNode社区看到有人分享了免费的线上mongodb数据库(容量500M),今天去注册了一下,成功的将线下数据库替换掉了,现在就说一下它的使用和配置需要注意的地方: mLab是一款免费的在线mo ...

随机推荐

  1. 微信jssdk批量添加卡券接口(踩坑经验)

    1)首先是官方接口文档: 1.批量添加卡券接口:https://mp.weixin.qq.com/wiki?action=doc&id=mp1421141115&t=0.0861973 ...

  2. Android中Parcelable和Serializable接口用法

    1. Parcelable接口 Interface for classes whose instances can be written to and restored from a Parcel. ...

  3. ios 图片处理( 1.按比例缩放 2.指定宽度按比例缩放

    本文转载至 http://blog.sina.com.cn/s/blog_6f29e81f0101tat6.html //按比例缩放,size 是你要把图显示到 多大区域 CGSizeMake(300 ...

  4. Java——我的概念

    1.多态:(1)父类变量引用子类对象;(2)该引用只能调用父类中定义的方法和变量;(3)如果子类中重写了父类中的一个方法,那么在调用这个方法的时候,将会调用子类中的这个方法;(动态连接.动态调用)

  5. <转>与EM相关的两个算法-K-mean算法以及混合高斯模型

    转自http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006924.html http://www.cnblogs.com/jerrylead/ ...

  6. 【Thinkphp5】结合layer弹窗 定制操作结果页面

    1 打开应用公共文件页面    appliction/common.php,编写以下代码 注意: 成功消息的绿色背景部分是iframe 框架写法,如果是普通页面.就吧parent去除,改为: self ...

  7. OpenGL ES2学习笔记(6)-- Line Strip和Line Loop

    Line Strip 上一篇文章画了两条线段,但是用了4个点.如果几条线段首尾相接的话,可以让OpenGL把他们当成Line Strip来画,这样就可以用n+1个点来画n条线段. 代码 import ...

  8. MQTT的学习研究(十一) IBM MQTT 简单发布订阅实例

    package com.etrip.push; import com.ibm.mqtt.MqttAdvancedCallback; import com.ibm.mqtt.MqttClient; im ...

  9. (转)从程序员到CTO

    好好努力吧,向优秀的人看齐.文章来自http://blog.csdn.net/smarttony/article/details/6697617

  10. 学习POC框架pocsuite--编写hellowordPOC

    在这里,首先向安全圈最大的娱乐公司,某404致敬. 参考博文 https://www.seebug.org/help/dev 向seebug平台及该文原作者致敬,虽然并不知道是谁 长话短说其实,可自由 ...