第四届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. boa.config

    # boa -c /usr/local/boa Port 80 #User 0#Group 0 ErrorLog /dev/console AccessLog /dev/console ServerN ...

  2. 一这hash算法

    public static long hash(byte[] digest, int nTime)         {             long rv = ((long)(digest[3 + ...

  3. web.xml 中的listener、filter、servlet 加载顺序及其【配置详解】

    在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰. 首先可以肯定的是 ...

  4. python2.0_s12_day13_javascript&Dom&jQuery

    今天主要内容:JavaScriptDomjQuery http://www.cnblogs.com/wupeiqi/articles/5369773.html 今天主要内容大致了解:javascrip ...

  5. thinkjs——art-template模板用法

    前言: 概述之前先附上此正式版介绍地址:https://github.com/aui/artTemplate  or http://www.jq22.com/jquery-info1097,可以再看下 ...

  6. Extjs6 Sdk中常用文件的作用

    一.框架文件 ext.js: 压缩版. 动态加载扩展类的基础框架. ext-all.js: 压缩版. 包含框架全部类. ext-all-debug.js: 未压缩版. 包含框架全部类 ext-debu ...

  7. xdebug和最重要的php调试技巧

    好几年没有写PHP代码了,最近写了一些.我比较厌烦php,主要是调试麻烦,要按无数次F5,经常刷出空白. 以前调试总是依赖于在代码中加入下面两行 error_reporting(E_ALL ^ E_N ...

  8. openstack将本地实例迁移至ceph存储中

    需求: 最近在openstack上线了ceph存储,创建虚拟机和云硬盘都基于ceph卷进行存储和创建,但是之前openstack用的是本地存储,创建的所有实例都在本地文件中,当实例重启之后,opens ...

  9. serializeArray()与serialize()的区别

    serialize()序列化表单元素为字符串,用于 Ajax 请求. serializeArray()序列化表单元素为JSON数据. <script type="text/javasc ...

  10. 重新学习python类

    之前觉得有java和c++的底子,对python的类没有认真研习,后面到了写项目的时候各种懵逼.终于决定彻底解决python的类问题. 一.python的类定义: class cls_name: de ...