BUU [2019红帽杯]childRE1

2024-03-05 06:59
文章标签 2019 buu 红帽 childre1

本文主要是介绍BUU [2019红帽杯]childRE1,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这个题目比较难,一开始看了一下没有头绪。

首先用ida打开:

很长的一个程序,一步一步仔细分析。

首先是第一部分,这一部分是先进行了输入,然后判断是否是31字节,将我们的输入使用sub_14001290()函数。这个函数,我一开始以为是一个加密函数,看起来挺复杂的。通过下面的sub_1400015C0()函数有一些提示。if(v4)下面的部分完全就是一个后序遍历嘛?所以说,这个函数可以猜测是构造二叉树的函数。 (下面第二张图是后序遍历的代码)。

但是有个问题,这个sub_1400015C0(v6+16),在ida f5后的代码中,没看到对v6进行了赋值操作。这个v6对应的是r10,查看ida中的汇编代码发现,其实是有赋值操作的,但是F5后的C代码中却没有关于v6的赋值操作,ida难道有bug嘛? 

 上面的部分总结下来,其实就是先是要有一个31字节的输入,其次将输入利用二叉树后序遍历完成了置换操作。这一部分好说,毕竟只是置换了一下顺序嘛。

         下面的操作,先是UnDecorateSymbolName函数,这个函数是反修饰指定已修饰的 C++ 符号名。随后利用62位的outputstring,进一步对比判断。 

        总体流程介绍完了。下面开始一步一步从下往上倒退。

        首先是这一部分:

       还是比较简单的,0x140003478和0x140003438处分别是两个字符串。总的来说就是用outputString中的值除以23,得到商和余数。将商和余数带入到 1234567890....这个大数组中,商和余数能满足  a1234567890Qwer[v14 / 23] 、a1234567890Qwer[v15]等于相应的 0x140003478和0x140003438 中的值。因此反推的字符=23*商+余数。

        写出这部分的脚本:

s3478 = "(_@4620!08!6_0*0442!@186%%0@3=66!!974*3234=&0^3&1@=&0908!6_0*&"
s3438 = "55565653255552225565565555243466334653663544426565555525555222"
s = '1234567890-=!@#$%^&*()_+qwertyuiop[]QWERTYUIOP{}asdfghjkl;,ASDFGHJKL:"ZXCVBNM<>?zxcvbnm,./'
p = ''
for i in range(62):p += chr(s.find(s3478[i]) + s.find(s3438[i])*23 )print (p)

        结果:

        

        接下来就是UnDecorateSymbolName()函数。

        经过这个函数之后,得到的输出是 :

        private: char * __thiscall R0Pxx::My_Aut0_PWN(unsigned char *)。

        可以上网查资料一步一步构造,参考了2019 红帽杯 Re WP - Hk_Mayfly - 博客园这个师傅的做法:

        直接模拟构造了一波:

 得到结果:?My_Aut0_PWN@R0Pxx@@AAEPADPAE@Z    (刚好31个字节)

 最后就是置换操作了。这部分使用动态调试的方法,输入31字节。

设置好断点后,可以找到相应输出的字符串,可以看到只是顺序变了。 

 python代码为

my_str = "?My_Aut0_PWN@R0Pxx@@AAEPADPAE@Z"
ori = "ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_"
change = "PQHRSIDTUJVWKEBXYLZ[MF\]N^_OGCA"newstr=[0 for x in range(0,31)]
for i in range(31):newstr[ori.find(change[i])]=my_str[i]
for i in range(31):print (newstr[i],end="")

得到结果:

最后md5即可: 

 

 

这篇关于BUU [2019红帽杯]childRE1的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/775659

相关文章

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法:   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问环境 老规矩,我们先查看源代码

2019学习计划

工作三年了,第一年感觉是荒废的,第二年开始学习python,第三年开始自动化 感觉自己会的东西比较少,而且不够深入,流于表面 现制定一下今年大概的学习计划 需持续巩固加强:python、ui自动化、接口自动化、sql等 代码量需提升,敲的不够(重点) 学习: 1.移动端测试,appium等 2.前端知识系统整理学习  3.性能测试 4.docker入门,环境搭建 5.shell

红帽RHEL8 多路径配置详解

本文为云贝教育 刘老师 原创,请尊重知识产权,转发请注明出处,不接受任何抄袭、演绎和未经注明出处的转载。 引言 在现代数据中心中,为了提高存储系统的可靠性和性能,多路径技术成为了一种重要的解决方案。多路径技术允许多条物理路径同时连接到同一个存储设备,从而提高了系统的可用性和I/O性能。本文将详细介绍如何在Linux系统中配置多路径技术,包括多路径的基本原理、配置步骤以及常见问题的解决方法。

最简单的使用JDBC[连接数据库] mysql 2019年3月18日

最极简版本的, 我们这里以mysql为例: 首先要创建maven工程, 需要引入jar包:,这里需要注意, 如果你安装的是mysql最新版本8以上的, 下面有些地方需要更改,具体就是mysql连接的url, 和5版本的不一样,具体解决请自行百度哈.这里只演示mysql5版本的? 依赖: <dependency>   <groupId>mysql</groupId>   <artifactId

(php伪随机数生成)[GWCTF 2019]枯燥的抽奖

审核源码发现加载check.php,审计发现使用了mt_rand()函数,这个函数生成的值是伪随机的 参考下面这篇文章 PHP mt_rand安全杂谈及应用场景详解 - FreeBuf网络安全行业门户 kali里面输入下载工具 git clone https://github.com/openwall/php_mt_seed.git cd进去输入make后编译出的文件先

2019年2月17日

今天又重新看了一下输出第1500个丑数 在我错了八次之后发现要输出一个句号还要输出换行 接下来的两天应该进入复习阶段了。

National Contest for Private Universities (NCPU), 2019 E. Generalized Pascal's Triangle

编辑代码 2000ms 262144K Generalized Pascal's Triangle Pascal's triangle is a triangular array in which each number can be calculated by the sum of the two numbers directly above that number as shown i

Hinton等人最新研究:大幅提升模型准确率,标签平滑技术 2019-7-8

导读:损失函数对神经网络的训练有显著影响,也有很多学者人一直在探讨并寻找可以和损失函数一样使模型效果更好的函数。后来,Szegedy 等学者提出了标签平滑方法,该方法通过计算数据集中 hard target 的加权平均以及平均分布来计算交叉熵,有效提升了模型的准确率。近日,Hinton 团队等人在新研究论文《When Does Label Smoothing Help?》中,就尝试对标签平滑技术对

Photoshop CC 2019圆形的抠图

快速进入矩形选区 快速在矩形和圆形选区之前切换: shift+M 选择的时候,按住shift,可以选中正方形/圆形   以中心点画圆: alt + 拖拽 再利用变换选区功能即可实现圆的选中 效果如图所示: 再使用自由变换,即可放大,缩小球的大小: ctrl + T 阴影部分的处理: 1)去其他球那里选择个椭圆形选区 2)选择编辑-填充 3)使用滤镜里

Windows Server 2019 中文版、英文版下载 (updated Aug 2024)

Windows Server 2019 中文版、英文版下载 (updated Aug 2024) Windows Server 2019 Version 1809 请访问原文链接:https://sysin.org/blog/windows-server-2019/,查看最新版。原创作品,转载请保留出处。 本站将不定期发布官方原版风格月度更新 ISO。 Windows Server