置顶文章

14k13 分钟

本来想着一篇文章写完 glibc2.23how2heap 系列,但是太长了,还是分开写吧 # 6. house_of_gods 【还没搞明白,先挖个坑】 # 7. house_of_lore 这个漏洞就是利用了申请 samll bin 后会将 bk 指到下个 chunk 上,如果这个 chunk 是我们想要控制的那么我们就可以申请回来然后利用,在要控制处伪造 chunk,使他的 fd 指向 small bin 的 chunk 即可绕过检测(一开始在想既然能直接该想要修改处的值,还伪造干嘛;后面发现这里能改写但是无法 getshell,伪造后能利用其返回的 ret 来 getshell) # 1
44k40 分钟

# 编译及链接 # 首先安装对应 glibc 版本 ./download 2.23-0ubuntu3_amd64 # 编译程序 gcc -g -no-pie fastbin_dup.c -o fastbin_dup 【这里 - g 是可以根据代码对应的行数来下断点】 # 链接对应版本的 glibc 库 22.04 lsudo patchelf --set-rpath /home/pwn/pwn/glibc-all-in-one/libs/2.23-0ubuntu3_amd64/ fastbin_dup sudo

文章列表

74k1:07

--- title: ctfshow_web 常用方法 date: 2023-09-24 17:08:15 categories: - CTF - ctfshow tags: - web --- # 1. 抓包 web 抓包:火狐浏览器 <img src="https://vvwwv.oss-cn-nanjing.aliyuncs.com/img/image-20241230215103736.png" alt="image-20241230215103736" style=&
47k42 分钟

--- title: PHP date: 2023-09-24 17:08:15 categories: - CTF - ctfshow tags: - web --- # 1. 函数: # 1.isset () 函数 isset() 函数用于检测变量是否已设置并且非 NULL。 如果已经使用 unset () 释放了一个变量之后,再通过 isset () 判断将返回 FALSE。 若使用 isset () 测试一个被设置成 NULL 的变量,将返回 FALSE。 同时要注意的是 null 字符("\0")并不等同于 PHP 的 NULL 常量。 # 2.substr ()
2641 分钟

# 古剑山 #choice 泄露地址 得到 flag # 江苏省信息安全测试员
7381 分钟

# 1. 查看程序 查看程序开启的保护 32 位程序,没有开启 NX,猜测可以使用 shellcode 利用 ida 反汇编 主函数 init():输出图形 vulnerable () :可以进行溢出,但是溢出范围很小 发现有后门命令在 shell 函数里 直接溢出执行该命令即可 # exp nfrom pwn import *from LibcSearcher import *context.log_level = 'debug'#p=process('./wustctf2020_getshell')p=
1.4k1 分钟

# PicoCTF_2018_rop_chain # 1. 首先查看程序信息 发现是 32 位程序,开启了 NX 利用 ida 查看 首先查看 main 函数 里面有个 vuln 函数,查看 发现 ret 到 gets 函数,由溢出可以利用 发现有其他函数 逐个查看 win_function1 win_function2 flag # 2. 分析 1. 由上面的函数可以看出,下面的成立时可以输出 flag if ( win1 && win2 && a1 == -559039827 ) 但是程序并没有调用这些函数,需要我们自己去执
1.7k2 分钟

# 1. 查看程序 ida32 查看 main 函数: cint __cdecl main(int argc, const char **argv, const char **envp)&#123; unsigned int v3; // eax char s2[11]; // [esp+1Dh] [ebp-13h] BYREF int v6; // [esp+28h] [ebp-8h] int i; // [esp+2Ch] [ebp-4h] v6 = 10; puts("
2.1k2 分钟

# 1. 查看程序 发现没有开启 NX,有 rwx 段,可以利用 shellcode 利用 ida 查看 因为要写入 shellcode 并执行,所以我们需要利用栈溢出 chall 函数里的 fget 因为大小限制为 1024(0x400),所以我们无法溢出,但是,该函数末尾有个 vuln(s,0x400),里面的 memcpy 函数会将 s,复制给 dest,且有 0x400 的大小可以进行溢出。 我们需要绕过 strcmp(s,crashme) , 可以利用 \x00 截断 # 2. 漏洞利用 我们通过执行 shellcode 来 getshell,通过 vuln 函数中的 mem
2.2k2 分钟

# 1. 查看程序 32 位程序,开启了 NX,ida32 查看, main函数 : int __cdecl main(int argc, const char **argv, const char **envp) &#123; int v4; // [esp+1Ch] [ebp-14h] BYREF puts("ROP is easy is'nt it ?"); printf("Your input :"); fflush(stdout); return read(0, &v4, 10
1.1k1 分钟

###<center>jarvisOJ_level3(ret2libc)</center> 1. 下载源文后查看文件保护和位数 发现是 32 位程序,开启了 NX (栈不可执行) 利用 ida 反编译查看程序 C 语言代码 发现有 vul 函数进入查看 发现有 write 和 read 函数,其中 read 函数可以进行栈溢出,可以对此利用 因为没有发现后门函数,所以利用 write 泄露 libc 的地址来执行 system (/bin/sh) exp: from pwn import * from LibcSearcher3
15k13 分钟

title: PWN 模板 date: 2025-01-06 19:23:15 categories: - CTF - PWN专栏 tags: - pwn # 1. 有后门函数 # 32 位 from pwn import *from LibcSearcher import *context(os='linux', arch='i386', log_level='debug')#p=remote('node4.buuoj.cn',28249)p=remot