首页 > 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 dat

2022_长城杯决赛_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_2020E0

CTF-Buuoj-Pwn-[第五空间2019 决赛]PWN5

格式化字符串 #----------------------------------------------------------------------------------------------- # coding:UTF-8 | # author:zxcyyyyy000

CTF-Buuoj-Pwn-pwn1_sctf_2016

#----------------------------------------------------------------------------------------------- # coding:UTF-8 | # author:zxcyyyyy000

CTF-Buuoj-Pwn-jarvisoj_level0

#----------------------------------------------------------------------------------------------- # coding:UTF-8 | # author:zxcyyyyy000

SDCTF 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 contex

centos库文件丢失紧急救援

目录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出一块可写的PRO

ciscn_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 o

2.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