首页 > TAG信息列表 > libc
2022年柏鹭杯 pwn题复现
题目附件链接: 链接:https://pan.baidu.com/s/1xng57H4uO04y0RdtYSVG7A 提取码:lele note1: 在程序里面,一个很明显可以用于getshell的地方是3.call,由于函数地址和参数都是存在堆上的,只要能够修改函数地址为system函数的就可以了。然后可以进一步归结为泄露libc基址、泄露代码段基址..jarvisoj_itemboard
itemboard 逆向分析 ADD: void __cdecl new_item() { int v0; // eax char buf[1024]; // [rsp+0h] [rbp-410h] BYREF int content_len; // [rsp+404h] [rbp-Ch] Item *item; // [rsp+408h] [rbp-8h] item = (Item *)malloc(0x18uLL); v0 = items_cnt++; item_arra[PWN]强网杯2022 house of cat
IDA分析 一个初始化函数,然后进一个while循环,memset 一块空间往里面读入数据交给 sub_19D6 函数处理 初始化函数设置缓冲区,开了沙盒,然后把一个libc的地址存到bss段上,然后给变量 qword_4168 赋值为 64 sub_155E 函数把变量 qword_4168 的值64放到那个 libc 地址中 然后分配一块Linux中程序是怎样启动的
Linux中程序是怎样启动的 前言 新程序的启动往往是通过libc中exe()系列函数进行的, exe系列函数最终都可以归纳为execve这个系统调用 系统层面 kernel会检查这个文件的类型 确定是elf之后会为新进程分配页表, 文件描述符, task描述符等各种资源 然后解析这个elf文件, 把text dat2022_长城杯决赛_babypwn
babypwn 漏洞利用 off by null + house of apple2 EXP ''' Author: 7resp4ss Date: 2022-09-06 09:11:16 LastEditTime: 2022-09-06 15:30:23 Description: ''' from pwn import * p = process('./pwnf') context.log_level = 'de攻防世界 new_easypwn 题解
攻防世界 new_easypwn 题解 程序分析 查看程序基本情况,如图,该程序是64位程序,开启了Canary、NX、PIE保护。 使用ida64打开分析程序,该程序是个电话录之类的,可以添加、删除、查看、修改通讯录。在查看函数这里发现存在字符串格式化漏洞,如图红框中标注所示。 其中图中地址unk_2020E0CTF-Buuoj-Pwn-[第五空间2019 决赛]PWN5
格式化字符串 #----------------------------------------------------------------------------------------------- # coding:UTF-8 | # author:zxcyyyyy000CTF-Buuoj-Pwn-pwn1_sctf_2016
#----------------------------------------------------------------------------------------------- # coding:UTF-8 | # author:zxcyyyyy000CTF-Buuoj-Pwn-jarvisoj_level0
#----------------------------------------------------------------------------------------------- # coding:UTF-8 | # author:zxcyyyyy000SDCTF 2022 Oil Spill
checksec Arch: amd64-64-little RELRO: No RELRO Stack: Canary found NX: NX enabled PIE: No PIE (0x400000) 开启了Canary和堆栈不可执行 main push rbp .text:000000000040068B mov rbp,BUUCTF-gundam
[BUUCTF] gundam 题目链接:https://buuoj.cn/challenges#hitb2018_gundam 这道题主要考察的是tcache的相关漏洞利用,由于刚接触堆漏洞利用,一步一坑...,做完后心生感慨必须得写点什么记录这次的踩坑经历。 glibc 环境配置 在做pwn相关题目时需要保持本地和远程机器环境一致。对于[buuctf][Black Watch 入群题]PWN
[Black Watch 入群题]PWN 1.checksec: 2.运行一下: 3.ida分析: 1.main函数: int __cdecl main(int argc, const char **argv, const char **envp) { vul_function(); puts("GoodBye!"); return 0; } 2.vul_function函数: ssize_t vul_function() { size_t v0; // eax虎符CTF 2022 babygame wp
先贴下exp,wp晚点来补 完整exp # Arch: amd64-64-little # RELRO: Full RELRO # Stack: Canary found # NX: NX enabled # PIE: PIE enabled from pwn import * from ctypes import * # from LibcSearcher import * import sys contexcentos库文件丢失紧急救援
目录centos库文件丢失紧急救援删除库文件救援模式 centos库文件丢失紧急救援 删除库文件 在centos的lib目录当中有很多的库文件,有些库文件被很多的程序依赖,比如libc.so.6就被大多数的程序依赖,如果这个库文件删除掉,该如何进行救援呢? 通过ldd可以查出来某个程序依赖的库文件,如下所示2022DASCTF-Apr-X-FATE-pwn-wp
目录2022DASCTF-Apr-X-FATE-pwn-wp1 good_luckchecksec漏洞点利用思路EXP2 ssstringchecksec漏洞点利用思路EXP3 easysystemchecksec漏洞点利用思路EXP4 try2findmeTODO5 storageTODO引用与参考 2022DASCTF-Apr-X-FATE-pwn-wp 时间太仓促了,题目逆向的工作量有点大,远程还有不少毛病2022DASCTFXSU三月春季挑战赛-pwn-wp
目录2022DASCTFXSU三月春季挑战赛-pwn-wpcheckinchecksec漏洞点利用思路EXPweddingchecksec漏洞点利用思路EXPSU_message引用与参考 2022DASCTFXSU三月春季挑战赛-pwn-wp 今天终于有空来写下wp。最后一题的CVE-2022-0185在学习中,未完待续。 checkin 这题最开始想用one gadget去做,_IO_2_1_stdin_ 任意写及对 _IO_2_1_stdout_ 任意读的补充
之前写过一篇 IO_FILE——leak 任意读,但是在学习的时候偷懒了,没有深入去看,这次碰到 winmt 师傅出的题,就傻眼了,故再写一篇博客来记录一下。 例题 ctfshow Incomplete Menu : 洞在 edit 里,可以超过 size 进行一个置零的操作。 这里还是考虑利用 _IO_2_1_stdout_ 来泄露 libc 基址。hwb_2019_mergeheap(str系列的特性)
例行检查我就不放了 漏洞点在merge这个函数 可以看到他将俩chunk进行拼接,并且把chunk的内容复制到新的chunk里面了 但是strcpy和strcat都有着一个特性就是遇到\x00就会停止, 假设我们将0x30和0x38的chunk合并,因为\x00给我们覆盖了所以他就会把下一个chunk的size给覆盖 造成改ret2libc 3
ret2libc 3 漏洞点 src开辟了256字节空间,dest开辟了56个地址 strcpy将src中的字符串拷贝到dest中 src可控 反汇编 int __cdecl main(int argc, const char **argv, const char **envp) { char **v4; // [esp+4h] [ebp-11Ch] int v5; // [esp+8h] [ebp-118h] char src[256]攻防世界-进阶练习-2021-12
WP XCTF House /proc/self/maps 和 /proc/self/mem 虚拟内存泄露 + ROP or FSOP + 栈迁移 这道题好难 保护全开 程序分析 似乎开了沙盒;检查确认下; 看来不能用execve获取shell了;试试orw。 v8 = (char *)mmap(0LL, 0x10000000uLL, 3, 131106, -1, 0LL);程序先mmap出一块可写的PROciscn_2019_final_4(反调试+在栈上伪造堆chunk)
程序的例行检查我就不放了,这道题我学到了从libc地址获取到栈地址的新思路 来源:(22条消息) ciscn_final_4(反调试+在栈上伪造堆chunk)_seaaseesa的博客-CSDN博客 程序漏洞很明显,uaf漏洞,这道题目开启了沙箱不允许,所以我们通过orw的方式获取到flag 这道题利用了俩个知识点,1在栈利用realloc调整栈使one_gadget生效
前言 当堆题保护全开的时候。PIE保护几乎使得unlink失效(除非能够计算出程序基址),FULL RELEO也使得函数GOT表不可修改。此时常覆盖各种函数的hook为one_gadget来getshell。 我常考虑的顺序是: free_hook->malloc_hook->IO_FILE->exit_hook 若有沙盒限制,则考虑setcontext 当free_2.32 Safe-Linking 机制
看 glibc 2.32 源码: /* Safe-Linking: Use randomness from ASLR (mmap_base) to protect single-linked lists of Fast-Bins and TCache. That is, mask the "next" pointers of the lists' chunks, and also perform allocation alignment checks o2.29 off by null
2.27 之前的 off by null 的利用手法总体来说比较简单伪造一个 presize 即可,但是在 glibc 2.29的更新当中,unlink 里加入的 presize check 使得之前的利用手法不再有效,并且 off by null 的难度提高不少。 /* consolidate backward */ if (!prev_inuse(p)) { prevsize = prev_s[BUUCTF-pwn] shanghai2019_slient_note
没有show,没开PIE,got表可写,估计就是控制got表。 只能add两个块,一个是0x28,另一个是0x208。BUU上给的是ubuntu18,没有次数限制,也不删指针明显的UAF。add时用的calloc 。 但是一是没有show,要得到libc需要控制got表,而add时用的calloc不仅会清残留还不用libc-2.27的tcache。这样如果用f