置顶文章

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

文章列表

30k27 分钟

# 环境搭建: # 1.DVWA 漏洞系统搭建 DVWA(Damn Vulnerable Web Application) 是一个用来进行安全脆弱性鉴定的 PHP/MySQL Web 应用,旨在为安全专业人员测试自己的专业技能和工具提供合法的环境,帮助 web 开发者更好的理解 web 应用安全防范的过程 DVWA 共有十个模块,分别是: Brute Force(暴力(破解) Command Injection(命令行注入) CSRF(跨站请求伪造) File Inclusion(文件包含) File Upload(文件上传) Insecure CAPTCHA (不安全的验
1.4k1 分钟

# 前言 最近想开始尝试物联网设备的漏洞,所以就先搭建一个环境,在自己 pwn (ubuntu22.04) 的环境下搭建的 # 1.binwalk (固件解包工具) binwalk 是一个固件解包的工具,当我们用编程器 dump 出一个固件用,需要用 binwalk 来解压 这工具一般 kali 上会自带,可以自行编译:https://github.com/ReFirmLabs/binwalk 用下面的这个把我 pwndbg 给干没了。。。 hsudo apt install binwalk改换这样安装: hsudo apt-get update$ su
6.3k6 分钟

# 1.Pwn-Auto_Coffee_machine # 1. 查看程序 Arch: amd64-64-little RELRO: Partial RELRO Stack: Canary found NX: NX enabled PIE: No PIE (0x400000) 没有开启 pie 想要进入 admin 里要输入一个密码,我们输入的密码会被加密一下: 所以我们要输入 lwuv"ryp"kv 字符串每个 ASCII码减-2 (最后输入的是 just pwn it )然后就可以进入 admin 在 admin 内有
1.3k1 分钟

# 1. 查看程序 32 位程序,开启了 NX ida32 查看 main: vuln: # 2. 漏洞分析 可以发现 read 读入的字节数可以导致栈溢出,但是没有后门函数,我们可以进行泄露 libc 来 getshell,这里利用 LibcSearcher 没有找到对应的 libc,然后就用了 DynELF 方法,来找到 system 地址,但是还是没有成功 # 3.exp 最后利用别人的偏移量才成功,泄露的地址是对的,但是都找不到正确的偏移量就用了别人的 nfrom pwn import *from LibcSearcher import *context.log_level &#
8931 分钟

# 1. 查看程序 32 位程序,开启了 NX main: printFlag: # 2. 漏洞分析 这里调用了 scanf 函数,可以进行溢出,然后有个后门函数,溢出返回到这里就可以得到 flag 这里看 ida 的距离 ebp 的偏移不准确,gdb 调试是 24 (0x18), 而 ida 是 0x10 # 3.exp nfrom pwn import *from LibcSearcher import *#context.log_level = 'debug'context(os='linux', arch='
1.6k1 分钟

# 1. 查看程序 32 位程序,开启了 NX ida 反汇编: vul函数 :可以看到只能溢出两个字,也就只能覆盖 ebp 和 ret,这种一般都需要栈迁移 hack函数 :只提供了 system 函数,无法获得 flag,所以不能直接用这个地址覆盖 ret # 2. 漏洞分析 由于可以溢出的字节数太小,所以就需要进行栈迁移,这里要考虑迁移的地址,首先 bss 段上没有很大的空间,并且没有备份去写入内容到 bss,所以就只能考虑栈上,那么就需要我们泄露栈上的地址,这里就可以利用 printf 来打印出 mian 函数的 ebp 地址再利用偏移就能计算出我们输入的字符串的地址:
9461 分钟

# 1. 查看程序 64 位程序,保护全开 ida 反汇编查看: 从上面看到会将一个字符串复制到 V5,然后有一个 check 的函数: fake_flag: check 函数会将复制过去的 v5 与系统保存的字符串逐个进行对比,直到对比时两个字符串相等时返回 1 ,就可以 getshell # 2. 漏洞分析 由于一开始复制给 v5 的字符串在栈上,而后面有个 get 函数也是往栈上写内容,并且地址更低也就可以覆盖 v5 的内容来满足后面的判断 # exp nfrom pwn import *from LibcSearcher import *#context.log_level
9251 分钟

# 1. 查看程序 32 位程序,开启了 NX IDA32 查看 main: vuln: 后门 win: # 2. 漏洞分析 有 gets 函数可以导致任意字节的溢出,然后有个后门,溢出到这里传参满足条件就行 # 3.exp nfrom pwn import *from LibcSearcher import *#context.log_level = 'debug'context(os='linux', arch='i386', log_level='debug')p=r
1.2k1 分钟

# 1. 查看程序 32 位程序,开启了 nx ida32 查看 main: vulnerable: (可以溢出 12 个字节,也就是 32 位的 3 个字) 后门 shell ,可以发现并不是 '/bin/sh',被用来进行干扰了 # 2. 漏洞分析 一开始想着用栈迁移 因为后门有执行 system 函数,尽管无法 getshell,但是却提供了 call system, 限制了溢出的字节数,所以无法利用 system_plt 的地址 (因为需要返回地址,这样字节数不够),【而 call system 会直接将下一个命令压入栈中】,也就避免了在