pwnimgstore123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657unsigned __int64 sell_book(){ char v1; // [rsp+7h] [rbp-59h] BYREF int buf; // [rsp+8h] [rbp-58h] BYREF int fd; // [rsp+Ch] [rbp-54h] char s[72]; // [rsp+10h] [rbp-50h] BYR...
题目附件https://github.com/nyyyddddn/ctf/tree/main/dasctf2024_summer_challenge
pwnspring_board123456789101112131415161718192021222324int __cdecl main(int argc, const char **argv, const char **envp){ int i; // [rsp+Ch] [rbp-4h] myinit(argc, argv, envp); puts("Life is not boring, dreams ar...
题目附件https://github.com/nyyyddddn/ctf/tree/main/wkctf_pwn
pwnbaby_stack在guess number逻辑这里用格式化字符串泄露 libc地址后
123456789101112131415__int64 wait(){ unsigned int v0; // eax char s[5]; // [rsp+Bh] [rbp-85h] BYREF char format[120]; // [rsp+10h] [rbp-80h] BYREF puts("Press enter to continue&q...
pwnshell 复现 (php pwn)如何调试?php pwn该如何调试?在docker中装一个gdbserver,用gdbserver起一个程序,在exp中用能触发io中断的php函数打”断点”,之后用gdb连上去后在vuln.so里打个断点就好了
能触发io中断的函数,比如说fgetc
1234<?php$char = fgetc(STDIN);echo "You entered: $char\n";?>
在pwnshell这个题目中php配置文件里禁用了fgetc这个函数,修改php.ini中的disable_functions,把fgetc删...
ggbond可以发现主函数是main_main,同时存在大量grpc字段,可以判断出程序使用了grpc框架。和grpc框架开发的程序进行交互,需要提取protobuf,protobuf谷歌开发的数据序列化格式,它通常用于网络通信和数据存储的应用程序之间的结构化数据交换。这个工具让你能够定义交互时消息的数据结构。
程序套了grpc,与程序的交互不再直接通过标准输入,而需要通过定义的 gRPC 服务接口来进行,然后grpc 使用一个叫protobuf的结构去描述怎么和程序交互的,首先需要提取出程序中的protobuf,然后python中有一个叫grpc_tools的库可以通过 protobu...
题目附件https://github.com/nyyyddddn/ctf/tree/main/vsctf_pwn
pwncosmic-ray-v3程序的逻辑
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950int __cdecl main(int argc, const char **argv, const char **envp){ signed __int64 v3; // rax setbuf(stdout, 0LL); setbuf...
pwnheap-2.23程序逻辑
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291...
xctf_BuggyAllocator复现程序有 alloc 和dealloc两个选项
123456789101112131415161718192021222324252627282930313233343536373839404142__int64 menu(){ __int64 v0; // rax __int64 v1; // rax __int64 v2; // rax v0 = std::operator<<<std::char_traits<char>>(&std::cout, "*** Buggy ...
ez_quiz可以发现程序分三个部分,第一个部分是一个base32的逻辑,第二个是一个表达式计算的逻辑,第三个是格式化字符串漏洞 + 栈溢出的逻辑,要先过了前两个逻辑才会走到存在漏洞的逻辑,程序还存在一个backdoor
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283int __cdecl main(int argc, co...
Xv6 and Unix utilities好哦,完成 mit 6.1810 2023 中 lab :Xv6 and Unix utilities了,准备开始下一章的学习了,xv6还是挺好玩的
sleep根据题目描述,和 user/ 中的其他程序的逻辑可以发现 命令行参数传递是通过 main的argc 和argv去传递的,其中argc 中存储着参数的个数,argv存储着参数名,没有参数的时候argc = 1,argv[0] = program_name。然后在 “user/user.h” 中有sleep 函数所以 只需要直接调用sleep函...