-
-
[原创]看雪.京东 2018CTF 第六题 PWN-noheap
-
发表于: 2018-6-28 09:20 3580
-
先用pwntools检查一下开启了哪些安全保护。
程序运行时,会算出一个简单的哈希,需要输入哈希对应的数据才能进行下一步。哈希验证可以通过爆破解决。
程序在初始化的时候会用异或一些地址,并初始化一串用于VM
的指令。
其中指令为1, 3, 0x13, 1, 0xf, 4, 6, 1, 9, 0x14, 1, 2, 0x13, 0x16, 0, 0x40
。
下面会使用异或重新生成地址。
在偏移0x01107
定义了一个简单的虚拟机。指令码为0x1-0x16。利用这个虚拟机可以操作栈。并且可以劫持执行流程。
处理Malloc的函数会从命令行读入一个size,是一个无符号整型,size不能大于0x80。然后读入size - 1个字符。输入整数时都是没问题的,但是输入0时会读入0xff个字符,着就会覆盖VM
的指令。
在漏洞利用时,不需要泄露信息,因为libc已经给出,然后可以从栈上读取一个libc中的已知地址,这里选取的是__malloc_hook + 0x10
,实际上就是main_anera
。
然后就可以根据这个地址算出任意libc中的地址。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
赞赏
他的文章
看原图
赞赏
雪币:
留言: