第四届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. dedecms的arclist循环中判断第一个li添加css,否则不加

    dedecms的arclist循环中,判断如果是第一个li,则添加固定的css,否则不加   写法如下: {dede:arclist row=4 flag='p'} <li [field:glo ...

  2. fildder教程

    转载地址:写得很不错的fildder教程   http://kb.cnblogs.com/page/130367/ Fiddler的基本介绍 Fiddler的官方网站:  www.fiddler2.c ...

  3. C++第15周(春)项目3 - OOP版电子词典(二)

    课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 [项目3-OOP版电子词典](本程序须要的相关 ...

  4. 关于Ethread的一些研究

    环境 win764 以TP为例 ring3保护 它会在windbg断下 这个时候我们需要拿到当前线程对象 应该到 当前使用的CPU的地址 _KPRCB-> CurrentThread 就是当前线 ...

  5. LeetCode——Binary Tree Paths

    Description: Given a binary tree, return all root-to-leaf paths. For example, given the following bi ...

  6. 原创Java多线程详解(一)

    只看书不实践是不行的.来实践一下~~~~~~(引用请指明来源) 先看看百科对多线程的介绍 多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术.具有多线程能力的 ...

  7. Android 判断是否是Rtl

    第一种方法: private boolean isRtl() { return TextUtils.getLayoutDirectionFromLocale(Locale.getDefault()) ...

  8. 启动Solr时报 _version_ field must exist in schema 错误的解决方法

    Solr启动时报 org.apache.solr.common.SolrException:org.apache.solr.common.SolrException: Unable to use up ...

  9. 关于wcf三大工具的使用(wsdl.exe svcutil.exe disco.exe)

    首先,我们必须创建一个wcf服务.并部署到IIS中.这里我已经将一个StudentService服务部署到我自己的电脑了. (1)svcutil.exe svcutil.exe工具的作用是通过服务地址 ...

  10. SpringMVC XXX-servlet.xml ApplicationContext.xml

    因为直接使用了SpringMVC,所以之前一直不明白xxx-servlet.xml和applicationContext.xml是如何区别的,其实如果直接使用SpringMVC是可以不添加applic ...