首页
社区
课程
招聘
[原创]挖宝题目设计思路
发表于: 2019-3-19 19:46 7169

[原创]挖宝题目设计思路

BPG 活跃值
2
2019-3-19 19:46
7169

大概逻辑是随便瞎走,然后一共有4个宝藏,在角落上的三个是忽悠人的,随机的那个宝藏4才能留言触发栈溢出

栈溢出比较简单,问题是在go中的实现就比较麻烦了,具体参考我对seccon2017那道题目的源码复现:http://leanote.com/blog/post/5c64bb2bab64415167000f48

这里实现了一个多线程,当靠近了宝藏4就会新生成一个宝藏4。而在go里的多线程中有一个叫做channel的通道可以在不同线程中传输值,而如果传值了没取那么线程会堵塞在传值那条语句中,于是就不会继续随机了。

保护全开+去符号表

不过实际上有用处的也就是pie,可以通过栈溢出泄露

输入长字符串后,直接看报错:

可以看到,应该是覆盖buf却把栈上的数据给覆盖了,那么直接给个可读地址替换一下就行了,最后用下面这个payload就能控制返回地址了:

那么接下来要做的就是构造rop链了,最终目标是执行:


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 1
支持
分享
最新回复 (2)
雪    币: 13076
活跃值: (4077)
能力值: ( LV15,RANK:1673 )
在线值:
发帖
回帖
粉丝
2
请问一下,在Ubuntu16上执行system("/bin/sh")成功,不过Ubuntu18上执行会异常(好像是执行没有效果直接结束了?),不知道这是什么原因?
2019-3-27 11:16
0
雪    币: 639
活跃值: (70)
能力值: ( LV12,RANK:219 )
在线值:
发帖
回帖
粉丝
3
这个就不太清楚了 不过我本来也是在16上测试的 主办方改成18的 不过还是能跑起来..
2019-4-2 09:36
0
游客
登录 | 注册 方可回帖
返回
//