首页 > 技术文章 > 『攻防世界』:新手区 | level2

Zowie 2020-07-28 15:20 原文

checksec查看程序类型

 

32位小端程序,未开启canary,大概率使用栈溢出解题

 

在IDA上静态看一看结构

 

 和上题一样存在漏洞,可以看到读取数据之前已经使用过system函数,可以将构造好的ROP通过栈溢出放入。但是这里使用简单的方法解题。这里参数不能够完成得到shell。在ida中使用shift+F12 查看有无可用“/bin/sh”字符串作为参数:

 利用栈溢出漏洞,构造payload控制执行流

查询出system函数的地址:ELF('./level2').sym["system"]; 查询出字符串的地址:EFL('./level2').search("/bin/sh").next()

payload = 'a'*0x88+'b'*4+8+p32(sysaddr)+p32(0)+p32(binshaddr)

 

不知道为啥本地脚本总是崩溃,所以就直接远程了:

 

 

推荐阅读