IoT设备上出现的真实内存漏洞大多都是对字符串操作不当所引发的,于是就必然会出现对于空字符的截断,进而导致我们的利用变得异常艰难。不过即使如此,黑客也可以使用各种花了呼哨的手段来完成利用。以下整理:由于字符串操作引发的栈溢出时,可以考虑的利用方法。
没有canray! | 00截断本身能否绕过 | 劫持的返回地址属性 | 备选地址 | 地址已知条件 | 执行类型 | 精准地址利用方法 | 精准地址利用例子 | 模糊地址利用方法 | |
不能 (栈上最后的payload数据以00结尾,中间没有00) |
返回地址有00 | ELF本体程序段 | 程序没开PIE、泄露 | gadget | rop(仅一次) | 栈迁移 | PSV-2020-0211-Netgear-R8300-UPnP栈溢出漏洞分析:https://www.anquanke.com/post/id/217606 | 无 | |
可控参数寄存器+system | 西湖论剑babyboa:https://xuanxuanblingbling.github.io/iot/2020/11/17/iot/ cisco rv110w 第二个解法:https://github.com/firmianay/IoT-vulhub/tree/master/Cisco/CVE-2020-3331 |
无 | |||||||
ELF本体数据段 | 程序没开PIE、泄露 | shellcode(NX关) | ret2shellcode | 无 | |||||
堆段 | 堆随机化没开、泄露 | shellcode(NX关) | ret2shellcode | totolink栈溢出 | 堆喷【n*(滑板+shellcode)】+ret2shellcode | ||||
返回地址无00 | lib库程序段 | 库随机化没开、泄露 | gadget | rop多次 | cisco
rv110w
第一个解法:https://xuanxuanblingbling.github.io/iot/2020/10/26/rv110w/ cisco rv130w rop: https://xuanxuanblingbling.github.io/ctf/pwn/2021/01/09/rop/ D-Link DIR-645路由器栈溢出漏洞分析:https://bbs.pediy.com/thread-259274.htm DIR815缓冲区溢出漏洞再分析:https://www.anquanke.com/post/id/206626#h2-14 |
无 | |||
lib库数据段 | 库随机化没开、泄露 | shellcode(NX关) | ret2shellcode | 无 | |||||
栈段 | 栈随机化没开、泄露 | shellcode(NX关) | ret2shellcode | hws2021入营:PPPPPPC:https://xuanxuanblingbling.github.io/ctf/pwn/2021/02/01/hws/ | 栈喷(疯狂溢出【n*(滑板+shellcode)】)+ret2shellcode | ||||
能 (截断性质函数可以被绕过,输入退化为read,栈上最后的payload数据中间有00) |
返回地址无限制 | 所有已知地址 | 看目标情况 | gadget shellcode均可 | gadget shellcode均可 | hitctf2020
suprecgi:https://xuanxuanblingbling.github.io/ctf/pwn/2020/12/09/hitctfpwn/ cisco rv110w 第三个解法:maybe defcon 2021:armpwn:url编码绕过00 |
喷 |