catch-me asis-ctf-quals-2016

附件给了个压缩包文件,重命名,解压,获取到elf文件

程序有两处关键比较

第一处:

这里进行动态调试,得到v3=0xB11924E1, byte_6012AB[]= B1 19 04 A1

第二处关键比较:

关键处理:

程序开始先生成了一个数v3,---> number_6012A8[]中保存v3特定位置0后数据,--->关键比较1 if ( getenv("ASIS") && (*(_DWORD *)getenv("CTF") ^ v3) == 0xFEEBFEEB )

可以求出getenv("CTF")的正确值:0xB11924E1 ^ 0xFEEBFEEB = 0x4ff2da0a

而关键数据dword_6012AC = *(_DWORD *)getenv("ASIS"); 即 number_6012A8[4:7]=getenv("ASIS")

后面一系列操作 对number_6012A8[0x20]进行求和,第二处关键比较 ,求和结果要等于0x954

我们可以知道正确的getenv("CTF"),但不知道getenv("ASIS"),猜测他们值相同

进行验证:

 1 haystack=[  0x87, 0x29, 0x34, 0xC5, 0x55, 0xB0, 0xC2, 0x2D, 0xEE, 0x60,0x34, 0xD4, 0x55, 0xEE, 0x80, 0x7C,
2 0xEE, 0x2F, 0x37, 0x96,0x3D, 0xEB, 0x9C, 0x79, 0xEE, 0x2C, 0x33, 0x95, 0x78, 0xED,0xC1, 0x2B]
3 v3=0xB11924E1
4 target=0xFEEBFEEB
5 t=v3^target
6 print(hex(t))
7 ctf=(t).to_bytes(4,'little')
8
9 number=[0xb1,0x19,0x04,0xa1]+(list(ctf))
10
11 for i in range(0x20):
12 haystack[i]^=number[i&7]
13 h=sum(haystack)
14 print(hex(h))
15 print(''.join(map(chr,haystack)))

输出:

0x4ff2da0a
0x954
600d_j0b_y0u_4r3_63771n6_574r73d

number_6012A8求和等于0x954,验证通过

ASIS{600d_j0b_y0u_4r3_63771n6_574r73d}

攻防世界 resver catch-me的更多相关文章

  1. 攻防世界 reverse 进阶 APK-逆向2

    APK-逆向2 Hack-you-2014 (看名以为是安卓逆向呢0.0,搞错了吧) 程序是.net写的,直接祭出神器dnSpy 1 using System; 2 using System.Diag ...

  2. CTF--web 攻防世界web题 robots backup

    攻防世界web题 robots https://adworld.xctf.org.cn/task/answer?type=web&number=3&grade=0&id=506 ...

  3. CTF--web 攻防世界web题 get_post

    攻防世界web题 get_post https://adworld.xctf.org.cn/task/answer?type=web&number=3&grade=0&id=5 ...

  4. 攻防世界 web进阶练习 NewsCenter

    攻防世界 web进阶练习 NewsCenter   题目是NewsCenter,没有提示信息.打开题目,有一处搜索框,搜索新闻.考虑xss或sql注入,随便输入一个abc,没有任何搜索结果,页面也没有 ...

  5. 【攻防世界】高手进阶 pwn200 WP

    题目链接 PWN200 题目和JarvisOJ level4很像 检查保护 利用checksec --file pwn200可以看到开启了NX防护 静态反编译结构 Main函数反编译结果如下 int ...

  6. XCTF攻防世界Web之WriteUp

    XCTF攻防世界Web之WriteUp 0x00 准备 [内容] 在xctf官网注册账号,即可食用. [目录] 目录 0x01 view-source2 0x02 get post3 0x03 rob ...

  7. 攻防世界 | CAT

    来自攻防世界官方WP | darkless师傅版本 题目描述 抓住那只猫 思路 打开页面,有个输入框输入域名,输入baidu.com进行测试 发现无任何回显,输入127.0.0.1进行测试. 发现已经 ...

  8. 攻防世界 robots题

    来自攻防世界 robots [原理] robots.txt是搜索引擎中访问网站的时候要查看的第一个文件.当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在, ...

  9. 【攻防世界】 高手进阶区 Recho WP

    0x00 考察点 考察点有三个: ROP链构造 Got表劫持 pwntools的shutdown功能 0x01 程序分析 上来三板斧 file一下 checksec --file XXX chmod ...

随机推荐

  1. JVM学习路线

    JVM探究 请你谈谈你对JVM的理解? java8虚拟机和之前的变化更新? 什么是OOM,什么是栈溢出StackOverFlowError?怎么分析? JVM的常用调优参数有哪些? 内存快照如何抓取, ...

  2. Linux 驱动框架---驱动中的中断

    在单片机开发中中断就是执行过程中发生了一些事件需要及时处理,所以需要停止当前正在运行的处理的事情转而去执行中断服务函数,已完成必要的事件的处理.在Linux中断一样是如此使用但是基于常见的中断控制器的 ...

  3. js code review

    js code review https://codereview.stackexchange.com/ refs xgqfrms 2012-2020 www.cnblogs.com 发布文章使用:只 ...

  4. Sentry & React

    Sentry & React https://docs.sentry.io/platforms/javascript/guides/react/ https://docs.sentry.io/ ...

  5. map & forEach

    map & forEach let logs = `2018-05-23 20:24:09,876 [Timer-2] ERROR org.gil.sydb.server.table.sync ...

  6. 钓鱼教程 All In One

    钓鱼教程 All In One youtube https://www.youtube.com/results?search_query=钓鱼教程&sp=CAM%3D 钓鱼证 https:// ...

  7. Web 全栈开发 Redis 面试题

    Web 全栈开发 Redis 面试题 Redis 大 key 问题 https://www.cnblogs.com/xgqfrms/p/13601959.html Redis 数据结构 Redis 初 ...

  8. Learn-JavaScript-with-MDN 系列文章: 01. var & let & const 对比

    Learn-JavaScript-with-MDN 系列文章: 01. var & let & const 对比 var & let & const 区别 https: ...

  9. svg 矩阵转换

    svg 矩阵转换 https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/matrix https://develope ...

  10. MySQL修改表中字段的字符集

    MySQL修改表中字段的字符集 ALTER TABLE 表名 MODIFY 字段名 要修改的属性: 例:ALTER TABLE `guaduates` MODIFY `studentno` CHAR( ...