- 博客(214)
- 资源 (4)
- 收藏
- 关注

原创 buuctf(pwn)
一日一PWN/REpwn1_sctf_2016实践是检验真理的唯一标准。pwn1_sctf_20161.找到漏洞的利用点往往才是困难点。(直接F5看看反汇编)发现两个可以函数跟进去看看2.这里对反汇编出来的Vuln理解了半天(本还想从汇编直接分析,不过进展收获不大,欢迎有兴趣的朋友一起交流),下面还是从伪代码分析。通过这几行能看出最后A变成了B。即把YOU 换成了I。因为上面是S的溢出点是3C,可fgets之读取了32并不会超过3C,但函数会把一个32个I换成32个YOU就达到了溢出点。3.
2021-04-04 22:35:26
3229

原创 全网最硬核PWN入门_图解分析
PWN序Linux环境下的基础知识从C源码到可执行文件的生成过程程序的编译与链接什么是可执行文件可执行文件分类PE/ELFELF文件格式区分节和段的存储区域加载ELF / 查看节和段区分布命令段(segment)与节(section)程序数据在内存中的组织分布大端序与小端序存储关键寄存器静态链接与动态链接常用汇编指令intel 和 AT&T汇编格式序PWN知识只有不断的重复,实践才能熟悉掌握。以下知识点以LINUX系统环境下为主要说明(Windows的会有点区别)。Linux环境下的基础知识
2021-04-03 09:54:50
7237
原创 02[FlareOn4]login
ROT13:可逆的,同样计算两次就还原了。所以直接用if (“PyvragFvqrYbtvafNerRnfl@syner-ba.pbz” == rotFlag) 中的条件作为输入。2,把"PyvragFvqrYbtvafNerRnfl@syner-ba.pbz"输入到输入框内,在源码中添加alert(rotFlag)即可打印出解密后的结果。题目来源:tps://buuoj.cn/challenges。1,打开/login.html。ctrl+u查看源码。
2025-03-28 16:10:37
154
原创 01[ACTF新生赛2020]rome
题目来源:https://buuoj.cn/1,无壳2,逆向分析功能:步骤3处运算符合凯撒加密特征:#参考:[【古典密码】凯撒加密]https://zhuanlan.zhihu.com/p/401504481#加密En=(x+n)%26#解密De=(x-n)%263,解题两种思路:● 思路一参考:https://www.cnblogs.com/Viegoo/p/16491814.html由于步骤4的字符是与步骤1相同的,所以可以逆运算:思路二:参考:https://blog.csd
2025-03-27 16:31:56
193
原创 01-创建项目-工具使用备忘录
前连接单片机电源先关闭,再打开,否则会卡在如下。命名第一个主逻辑调用文件名为main。然后可以再main.c中编写代码。8051指令集:参考芯片型号。定时长度:视情况设置取值。不用自动生成启动文件。系统频率:参考开发板。
2023-06-29 22:46:49
376
原创 jarvisoj_level1-ret2libc
利用的是pwntool模板自动搜索泄露地址匹配的libc版本。思路:无binsh,无system,考虑ret2libc。
2023-06-13 22:39:58
177
原创 [ZJCTF 2019]Login
根据输出Nope,猜测程序判断密码是否正确输出,即存在if…,回溯发现a1是参数v8,v8是password_checker(v3);输入正确即调用函数指针,因此找找看有没有。找到了后门函数,我们还需要看看。
2023-06-10 14:18:52
130
1
原创 ciscn_2019_s_4-栈迁移
思路:由于无直接getshell的利用函数,溢出空间只有8字节(ebp+ret占用无法继续填充ROP了),所以需要栈迁移更大的空间来构造ROP。栈迁移位置:执行函数+0xdeadbeef(假ebp)+0xdeadbeef(假ret)+参数。此栈帧迁移到s[40]数组的位置,先通过第一次打印泄露s[40]的起始地址。栈迁移核心(通过ROPGadget寻找。ebp位置:栈迁移位置-4(32位)ret位置:leave_ret。题目类型猜测:栈溢出,栈迁移。作用:赋值执行函数调用。
2023-06-07 20:36:33
779
1
原创 Hitcon 2016 SleepyHolder-fastbin_dup_consolidate.c
参考/题目下载:1,三联保护:基本都开了功能:0、唤醒功能;1、创建-secret:Big secret;2、清除-secret;3、修改-secret;2,IDA分析功能主函数:清除功能-free:这四个指针都是BSS段的地址。问题点:未检查free的指针是否为空;free后指针未至置为0;导致:可以double free而要想成功double free,仅一个fastbin的chunk不行。
2023-06-04 12:05:50
268
原创 how2heap-fastbin_dup_consolidate.c
malloc(largebin_chunk)后再次free(fast_binA)的时候,判断是不是double free仅仅根据从同一个大小的 fastbin中拿出第一个 bin,比较地址是不是相同,即free的fast_bin链中的地址,而我们的 chunk 早到 unsorted bin 中去了。利用malloc(largebin_chunk)把free(fast_binA)移动到unsorted bin中;再次free(fast_binA),即double free了fast_binA;
2023-05-27 22:07:54
252
原创 mrctf2020_easyoverflow
分析:a1=v5,check(v5)=1的前提是for循环正常退出,即v5=n0t_r3@11y_f1@g。分析:gets(v4)溢出点,check(v5)=1则执行system();思路:通过v4溢出覆盖控制v5。
2023-05-25 23:24:25
271
原创 CTF 2015: Search Engine-fastbin_dup_into_stack
参考:[1]https://gsgx.me/posts/9447-ctf-2015-search-engine-writeup/[2]https://blog.youkuaiyun.com/weixin_38419913/article/details/103238963(掌握利用点,省略各种逆向细节)[3]https://bbs.kanxue.com/thread-267876.htm(逆向调试详解)[4]https://bbs.kanxue.com/thread-247219.htm(双解法)1,三连2
2023-05-24 21:04:15
828
原创 0ctf_2017_babyheap-fastbin_dup_into_stack
参考:题目下载参考[1]通过pause()构成一个断点。本人尝试的其它方式都无法在payload中下断成功。如有知道的师傅欢迎在评论区分享。
2023-05-19 00:18:55
486
1
原创 wustctf2020_getshell_2
原因:由于system需要调用构造栈上布局参数,所以必须得通过call来实现ESP的变化匹配栈布局。system地址0x08048529。
2023-05-15 20:39:22
184
原创 how2heap-fastbin_dup_into_stack.c
伪造fake的chunk,区别于mem(指向写入数据地址指针),sizeof(d)直接写8也行(64位下)
2023-05-14 22:26:56
77
原创 how2heap-fastbin_dup.c
不同libc版本的fastbin_dup.c源码有点小区别:主要是有tcache的,需要先填充。double free的chunk不能是头结点,需要利用一个中间替换头结点;有tcache先malloc(8)*7,在free掉7个占满tcache;优先分配-用malloc(8)的大小即可free后占用。头结点不能同时free两次。
2023-05-13 23:56:47
358
原创 xdctf2015_pwn200
依据:./bof的执行为见堆malloc特征,虽然未出现segment fault,可能是输入数量不够。思路:write泄露libc,ret2libc类型。3,IDA分析寻找利用点。思路:猜测是溢出题。
2023-05-11 19:48:09
244
原创 cmcc_simplerop
int80(11,“/bin/sh”,null,null),后面的四个参数分别是eax、ebx、ecx、edx。由于未开启PIE,我们利用simplerop中的read()函数写入bss段。2、ROPgadget找寄存器。偏移:0x14+4(错误)
2023-05-08 21:03:06
218
原创 how2heap-calc_tcache_idx.c
否则CHUNKSIZE = (x + SIZE_SZ + MALLOC_ALIGN_MASK) & ~MALLOC_ALIGN_MASK);判断是否是属于tcache index,当计算chunk的idx公式的结果大于63时,即不为tcache。x + SIZE_SZ + MALLOC_ALIGN_MASK < MINSIZE(0x20) 时,则CHUNKSIZE = MINSIZE (0x20);
2023-05-06 22:15:58
108
原创 how2heap-first_fit.c
malloc(size)中size小于已被free的chunk_size即可达成UAF。2、chunk足够大,fastbin也行;最终效果:修改c即修改了a。1,ubuntu16编译。1、空闲chunk;
2023-05-06 21:34:42
95
原创 jarvisoj_test_your_memory
需要正常结束程序(执行cat flag后hint中才有内容),所以调用system之后再调用main打印hint,即flag。没有/bin/sh,但是存在cat flag,同样可以用作system的参数。有system,无/bin/sh,但有cat flag。存在栈溢出,可以进行溢出调用system。
2023-05-02 14:57:36
186
原创 hitcontraining_uaf
8字节填充(利用点之一)=print_note_conten函数地址+print_note_content内容地址;例如一次add_note(),notelist[0]=&print_note_content。关注点:0x804b158[3] = node[0]= 0x080485fb等会被改写。一次add_note()malloc了两次,地址被notelist[]数组保存;notelist[]属于bss段全局变量,存储chunk。基本信息:x86-32-el,堆题思路;保护:Partial RELRO。
2023-04-28 22:19:19
803
原创 [ZJCTF 2019]EasyHeap-patchlibc-调试
后面只用关注伪造的fd地址0x6020C8即可,也即是heaparray_addr - 0x18。heaparray_addr = malloc(chunk0)这里获得的就是&chunk[0];1、伪造chunk[2]=[全局地址-3];chunk[3] = [全局地址-2]通过修改chunk[3]的值 ->控制 &chunk[0] ->4、给任意地址填入内容,chunk[0] = [任意内容]3、填入控制任意地址,chunk[3] = [任意地址]chunk[3] ->实现[任意地址]写。
2023-04-25 23:56:51
677
1
原创 [Black Watch 入群题]PWN-栈迁移
细节详情参考:https://blog.youkuaiyun.com/mcmuyanga/article/details/109260008。buf溢出栈空间只有0x20-0x18=8字节无法构造rop,所以需要利用栈迁移技术,迁移到bss上构造rop。bss栈布局:(左边是第一泄露Libc构造栈帧,右边是第二次重写获取shell的栈帧)改变思路:由于此程序没有可直接ret利用的函数同时溢出空间很小,所以需要。栈迁移操作:构造好栈中ebp新位置。思路:ret2shellcode。栈迁移关键指令:leave。
2023-04-20 22:47:33
810
原创 [网鼎杯 2018]Fakebook
1,网页访问内容2,join功能自动跳转:查看源码:这里使用了伪协议获取数据。收集信息:可通过伪协议读数据2,观察url特征,尝试sqli出现报错,大概率存在sqli,但感觉得绕过,先做个目录扫描多收集点信息。收集信息:web目录路径3,robots.txt文件发现信息直接可以把user.php.bak下载下来,内容如下:直接审计一波。
2023-04-15 21:55:29
395
1
原创 pwnable_orw-seccomp沙箱
但是,并不是所有的系统调用都被需要,而且不安全的代码滥用系统调用会对系统造成安全威胁。seccomp安全机制能使一个进程进入到一种“安全”运行模式,该模式下的进程只能调用4种系统调用(system call),即 read(), write(), exit() 和 sigreturn(),否则进程便会被终止。还能调用o(open)/r(read)/w(write)功能,题目orw的提示就是这样来的!输出flag文件内容,sys_write(1,file,0x30);手动生成读取文件shellcode。
2023-04-11 20:18:13
854
1
原创 bjdctf_2020_babyrop2-fmt-leak canary
这使得参数可以输出多次,使用多个格式说明符,以不同的顺序输出。本地libc下载:https://github.com/Yeuoly/buuctf_pwn/tree/master/bjdctf_2020_babyrop2。printf(“%p”, a) 用地址的格式打印变量 a 的值,printf(“%p”, &a) 打印变量 a 所在的地址。思路:aa相当于定位标识,format在格式化假参数6的位置,所以构造成。2,IDA静态分析,查看可以泄露canary的地方,否则只能爆破了。canary的位置:即。
2023-04-10 18:42:00
523
原创 [CISCN2019 华北赛区 Day2 Web1]Hack World
思考:这里如果对访问次数加以限制就很难爆破盲注突破了。2,burp测试黑名单关键字。思路:大概率得盲注了。
2023-04-08 21:47:30
213
Cisco Packet Tracer 6.2sv模拟器
2020-11-28
delphiQQ聊天窗体+登录界面跳转
2020-05-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人