Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

XPheli_chan's blog

来签个到吧checksec: 开了全保护 看IDA: 满足v4[27]为0xADDAAAAA时,就能getshell v4是int类型 所以要填充4*27=0x6C个字节,然后写要求的数字 exp: 12345678910111213141516171819from pwn import *from LibcSearcher import *from struct import...

onlychecksec: 保护全开 IDA64打开 显示了菜单,在bookkeeping函数里: %lf是双精度浮点数,要求输入的浮点数是: 当输入一个符合要求的浮点数时,就会跳转到漏洞函数: 选 run your code会先执行一段汇编,这段汇编是清空除了RIP RSP的其他寄存器: 然后允许输入0xA大小的shellcode 0xA大小的汇编太小,所以需要重新利用sysc...

下载附件 查看文件 把cpio解压,得到init文件和.ko的内核文件 先看start.sh: 程序开了KASLR 再看看init文件: 读取了kallsyms符号表放到tmp里 设置了120秒关机定时 加载了core.ko模块 现在看看这个模块 checksec看保护: 开了canary IDA查看: init module有core_fops结构体 里面有core_write...

理解程序checksec: 全保护开启,IDA64查看 add函数: 输入的大小限制在0x500到0x600之间 也就是largebin其中的区间 同时必须在add的时候选择是否edit 只能edit5次 限制只能申请最多31个chunk delete函数: free后没清零 存在UAF show函数: 同时程序还有用prctl实现的沙箱: libc版本为2.38,版本较高,考虑...

PWN1GNU Debugger开靶机,运行: 要查看r12寄存器,于是在register窗口查看: 复制过去 第二关: 使用telescope查看该地址: telescope 0x555555557c27 复制后进入下一关 在这个位置使用b下断点: b *(0x555555555779) 使用set指令设置该地址为0xdeadbeef set *(0x7fffffffdce4)...

理解程序checksec: 开启了全保护 64位 IDA64查看,标记函数: add函数: 正常的malloc edit: 未限制编辑字节数,存在堆溢出 show: 正常的show出来 delete: 将free指针给清零,也没有什么漏洞 同时: 输入5会跳转到一个函数 这道题的libc版本为2.39,版本较高,存在一个堆溢出,想法是先利用堆溢出泄露堆地址,再用堆地址得到unso...

理解程序checksec: 没开PIE IDA64打开: 开启了沙箱,可以使用shellcode 限制shellcode为0xf 0x5的次数只能为2次 对应汇编是syscall 也就是只能执行两次syscall 查看沙箱: 只允许使用写出的系统调用 思路是先open flag文件,然后利用mmap将flag的文件描述符映射到一个可读地址,再用write写出来 但是限制了只能执行两...

理解程序:文件给了个libc,ld,sh文件和elf checksec: 保护全开 IDA64打开: 以及run.sh文件 要用runsh来运行chtest 查看chtest里的函数: securefd: 关闭了标准错误输出并且打开了根目录,由于文件描述符会自动分配最小的,此时该根目录在标准错误输出的fd位置上。 然后在fd位2的位置打开了flag,之后关闭了3到1000的fd 也就...

理解程序: 64位开启了NX IDA64打开 是静态链接,标记一下函数,并且导入签名文件恢复部分符号表 先看add函数: 申请固定大小的0x100的堆,并且将堆的指针存在heap_array全局变量中 edit函数: 正常的编辑 delete函数: 没有对free的指针清零,存在UAF漏洞 没有show函数 而且开启了沙箱禁用execve: 同时题目说明了是libc2.23,那么就...