首页 > TAG信息列表 > sendlineafter

2022年柏鹭杯 pwn题复现

题目附件链接: 链接:https://pan.baidu.com/s/1xng57H4uO04y0RdtYSVG7A 提取码:lele note1: 在程序里面,一个很明显可以用于getshell的地方是3.call,由于函数地址和参数都是存在堆上的,只要能够修改函数地址为system函数的就可以了。然后可以进一步归结为泄露libc基址、泄露代码段基址..

攻防世界 new_easypwn 题解

攻防世界 new_easypwn 题解 程序分析 查看程序基本情况,如图,该程序是64位程序,开启了Canary、NX、PIE保护。 使用ida64打开分析程序,该程序是个电话录之类的,可以添加、删除、查看、修改通讯录。在查看函数这里发现存在字符串格式化漏洞,如图红框中标注所示。 其中图中地址unk_2020E0

2022 *CTF examination

exp from pwn import* context.log_level = 'debug' context.arch = 'amd64' #s = process('./examination') s = remote('124.70.130.92',60001) libc = ELF('/lib/x86_64-linux-gnu/libc.so.6') def init_role(role):

[BUUCTF-pwn] inndy_petbook

写着写着自己都乱了。 菜单很长,块也很大看起来极不方便。 先是建用户和登录这个没啥,然后就是post,每个post会有一个管理块。整理一下大概关系是这样的: 用户块0x220->0x20->0x120->post信息,其中用户块没有溢出,但post有realloc修改,好像就这一个漏洞点。 另外每个头上加了migic:2字节

asis2016_b00ks(off-by-null *不一般)

题目的例行检查我就不放了,将程序放入ida中      程序的输入这里有一个a1=0存在off by null  再进入add页面查看            可以看到程序申请了一个0x20大小的chunk保存着当前2chunk的地址指针和index的信息 所以我们可以通过仿造或者修改指针去达到任意申请和任意写

[BUUCTF-pwn] [HarekazeCTF2019]Harekaze Note

未知高版本libc的堆问题 题目给了libc但下不来。github在国内没办法。 一般2.23的堆没有tcache第一个块在010,2.27以后加了250的tcache第1个在260,2.31以后在2a0 可以先泄露堆地址再根据大概的版本往下走。 先按2.27在本地作成,发现远程不能用,虽然小于2.31但tcache不能直接doublef

ciscn_2019_s_1(unlink)

到了考试周,有半个多月没有碰pwn了,趁放假多做一点题弥补一下和pwn师傅的差距 题目的例行检查我就不放了 malloc 函数    可以看到malloc限制了chunk的大小。然后再heap处存chunk的指针便于管理 edit函数    这里存在着漏洞,read时程序没有对v2进行严格的限制存在着堆溢出,然后e

[BUUCTF-pwn] bssidessf_ctf_2020_adding_machine

难度不大,要求输入n个数,但栈空间只能放127个数,要求输入数<127但可以输入负数,其它地址在输入debug时可以全部得到。 这里由于没有中途退出机制,需要精确的输入一个负数表示执行次数 v6 = get_long("Number of numbers to add"); if ( v6 <= 127 ) { get_data(v8, (unsign

0ctf_2017_babyheap

0ctf_2017_babyheap 查看保护 edit可以改size,堆溢出,overlapping泄露libc。fastbin attack改hook为onegadget即可getshell。overlapping和fastbin的攻击手法具体看z1r0’s blog from pwn import * context(arch='amd64', os='linux', log_level='debug') file_name = &

第二届“祥云杯”pwn_note

这题是格式化字符串漏洞 + House Of Orange + __malloc_hook 组合利用,难度倒也不是很难,对于我这种新手学到了不少东西。 但是我觉得这里并不是的格式化字符串漏洞,倒不如说是故意构造的逻辑漏洞,姑且称它为格式化字符串漏洞吧。 思路: house of orange:通过修改 top chunk 的 siz

[BUUCTF-pwn] fl0ppy_codegate_2016

一个不算复杂的问题把自己整晕了 程序虽然用到堆但是与堆无关,有两个floppy可选,功能有选择盘,写入(建堆块写入指针,desc写内容),show和修改4个功能。其中修改的时候desc原长度为0xc实际可写入0x25有个溢出。并且长度足够情况下strncpy并不带尾部的\0  char *__cdecl m4edit(int a1) {

Pwnable.xyz Game

0x1,概述。 这道题漏洞主要在于函数save_game函数的有符号整形使edit_name对名字长度误判导致的溢出,仔细观察save_game函数对数字格式的转换再结合堆结构可以直接发现。 0x2,具体解决方案。 先查一波保护:  具体逻辑分析:  main()通过菜单选择行为,并回应。  Play game 通过指

[BUUCTF-pwn] ciscn_2019_ne_4

漏洞点: 在edit里,长度检查里如果长度比原长度大10则返回原长度+1 off_by_one __int64 __fastcall sub_E3C(int a1, unsigned int a2) { __int64 result; // rax if ( a1 > (int)a2 ) return a2; if ( a2 - a1 == 10 ) LODWORD(result) = a1 + 1; else LODWO

[BUUCTF-pwn] serial_codegate_2016

跟堆无关也不关栈的事。 程序先在堆里开了片地,然后自己写。每个消息读入0x20字节,在0x18放个函数指针,正好写入数据时能写到函数指针上。 基本思路:         先把函数覆盖为printf,数据写'%p,'*8这样打出内存值找个libc里的地址得到libc,删掉再写/bin/sh;xxxx+system运行的时候就

[BUUCTF-pwn] pwnable_secret_garden

这个题本身没有难度,小难点在one_gadget+realloc偏移 堆题全保护就不用说了,漏洞在free时没有删指针 int m3free() { int result; // eax _DWORD *v1; // rax unsigned int v2; // [rsp+4h] [rbp-14h] BYREF unsigned __int64 v3; // [rsp+8h] [rbp-10h] v3 = __readfs

[BUUCTF-pwn] inndy_mailer

这个题呀,一言难进,原来作过一个类似的,一个坑忘了,第二次还是跳了。作不出来,搜exp。 但有必要记录一下 32位,got可写,有可写可执行段,PIE打开,无canary,基本是保护全关了。 [*] '/buuctf/402_inndy_mailer/pwn' Arch: i386-32-little RELRO: Partial RELRO Stack:

CTFshow 击剑杯 部分WP

摆烂了摆烂了 太难了 聪明的师傅已经组队打起月赛了 试试能不能苟住前5 苟住了 复现的后面再补充吧 文章目录 1.Misc中文识别带师 2.Web简单的验证码easyPOP 3.Pwnpwn01-My_sword_is_readypwn02-Precision_and_grace 4.Osint英语阅读这是哪里卡鲁铁盒人家想玩嘛人有点多

pwn1--攻防世界

这道题目看很多题解是使用 one_gadget  做的,还有的是使用 LibcSearcher 模块做的。我刚开始看见题目给了 libc库,但是我总是打不通。 这道题如果使用 LibcSearcher 来做就是常规的先泄露canary值后按照ret2libc来打就可以了。    来先看一下,程序的主要部分。程序是要我们输入

[BUUCTF-pwn] ciscn_2019_ne_2

自从300题后,难题让人搜不着,也有极简单的题,今天遇到一个 概况: c++写的程序,反汇编后一个字符串有1米长冒: 6个字符依次或或6-1得到 H@QRPNfree未清指针 步骤: 输入"NEUQRO" 开始建80,70,10(/bin/sh\x00)free90 八次 70两次 show 0得到libc建70 三次,依次写free_hook,x,system

[BUUCTF] ciscn_final_10

目录ciscn_final_10总结checksec漏洞点EXP引用与参考 ciscn_final_10 总结 一道简单的tcache dup的题,前面需要绕过校验,注意一下函数的参数为int16。最后把shellcode处理一下即可。 checksec 版本为libc-2.27,无tcache dup检测。 漏洞点 判断是否为0的函数的参数为int16。 uaf: EX

[BUCTF] cscctf_2019_final_childrenheap

目录cscctf_2019_final_childrenheap总结题目分析checksec漏洞点EXP引用与参考 cscctf_2019_final_childrenheap 总结 本题使用malopt(1, 0)禁用了fastbin,这种情况下,一般来说有两种解题思路: 方法一:首先unsortedbin attack攻击global_max_fast,然后利用fastbin attack完成利用 方法

[BUUCTF] ciscn_2019_sw_2

目录ciscn_2019_sw_2总结题目分析checksec漏洞点利用思路EXP引用与参考 ciscn_2019_sw_2 总结 libc-2.27版本下的off by null。 题目分析 checksec 漏洞点 在add分支,存在一个off by null,由strcpy导致的 利用思路 步骤: 三明治结构,泄露地址 两个指针指向同一块chunk tcache dup修

[BUUCTF] 西湖论剑_2018_小陈的笔记本加强版

目录西湖论剑_2018_小陈的笔记本加强版总结题目分析checksec漏洞点利用思路EXP引用与参考 西湖论剑_2018_小陈的笔记本加强版 总结 常规的libc-2.27版本下的off by null,PIE也没有开启。但是没有办法直接用bss上的堆指针去泄露和修改,所有还是选择了两个大的chunk进行unlink 题目分

[BUUCTF] rctf_2019_babyheap

rctf_2019_babyheap 总结 禁用了fastbin,同时有off by null的漏洞。做出来后发现很多人的解是用的house of storm进行任意地址申请,覆盖__free_hook后,然后利用setcontext读取到的flag。我的方法却是利用的unsortedbin attack+fastbin attack,修改了global_max_fast的值之后,利用stdout

[BUUCTF] hwb2018_shoppingcart

hwb2018_shoppingcart 总结 根据本题,学习与收获有: read当长度为0的时候,会返回0 %s遇到\0才会结束输出,遇到\n并不会结束输出 某个地址存储了__free_hook的地址,搜一把就得到了 题目分析 checksec 远程环境为libc-2.27.so 漏洞点 主要在modify中,有一个打印地址和索引溢出 利用思