标签:
因为最近要去做ctf比赛的这一块所以就针对性的分析一下近些年的各大比赛的PWN题目。主防项目目前先搁置起来了,等比赛打完再去搞吧。
这次分析的是去年的SCTF的赛题,是我的学长们出的题,个人感觉还是很符合套路的:一道栈溢出、一道格式化字符串、一道堆溢出。
一个栈溢出。
题目给出了libc。保护只有nx。
拿到题后的基本思路就是leak出got表中函数的地址,然后拿libc算偏移算出system的地址。然后用这个地址去覆盖一个函数的got表。
一个明显的格式化字符串漏洞,格式化字符串本身是在bss段中的,但是又复制到局部数组里了,想必是出题人为了降低难度。这个也给出了libc。但是没有办法像栈溢出那样leak出got表的内容。虽然可以向任意地址写但是却不知道改写入的地址是多少。第二个问题就是参数,要想执行system就得构造/bin/sh这个参数。这个参数怎么搞?
就是说有两个问题摆了出来
1.如何求system的地址,虽然有libc可以算偏移,但是没法leak got表啊
2.如何布置参数,可以写在数据段里,但是怎么作为参数?
标签:
原文地址:http://www.cnblogs.com/Ox9A82/p/5480015.html