无题
https://www.mrskye.cn/archives/e77640bd
CVE-2020-8423栈溢出复现
这个漏洞复现学习到的姿势点挺多的:
通过 hook 关键函数修复固件运行环境
编写 shellcode 的指令逃逸
简介漏洞编号:CVE-2020-8423
漏洞描述:httpd获取参数时的栈溢出导致了覆盖返回地址shellcode执行
固件获取漏洞设备固件版本:TP-LINK TL-WR841N V10 。
国内站点没有 V10 版本固件,美丽国情况一样,换去加拿大站点找到:
https://www.tp-link.com/ca/support/download/tl-wr841n/v10/
这里记录一下国内 tplink 官网上面的固件和国际版本有点区别,binwalk -Me 出来是很多压缩包,用的是 wind river 系统 ,需要进一步处理才能提取到二进制文件。
http://www.tearorca.top/index.php/2020/05/13/tp-link%e4%b8%adwind-river%e7%b3%bb%e7%bb%9f%e8%b7%af%e7%94%b1%e5%99%a8%e5%88%9d%e6%ad%a5%e5%88%86%e6%9e%90% ...
2021DASCTF四月赛Writeup
fruitpiemalloc 申请 size 没有上限,后面会输出堆地址。
申请大 size 堆,以 mmap 方式分配,得到的堆地址在 libc 附近。
需要用 realloc 调整堆栈让 onegadget 生效,最后关闭了 stdout ,手动打开exec 1>&0
exec 1>&0 - luooofan
EXP1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859from pwn import *context.log_level = 'debug'context.binary = "./fruitpie"context.terminal = ['tmux','sp','-h']p = process("./fruitpie")libc = ELF(" ...
NEPCTF2021 Writeup
xhhmain 函数退出时会调用 buf[2] 里面的函数:
调试看到里面存在的值,是众多错误提示中的一个:
程序存在后门,地址为:0x14E1
由于开启了 PIE 保护,只有最后3位不变,需要爆破倒数第 4 位。
EXP123456789101112131415161718192021from pwn import *context.log_level = 'debug'payload = "/bin/cat /flag".ljust(0x10,'\x00')payload += "\xe1\xa4"while True: p = process("./xhh") # gdb.attach(p,"b *$rebase(0x1721)") p.send(payload) sleep(0.5) try: flag = p.recv() except: flag = "" if "{" in flag or &q ...
VNCTF2021 Writeup
White_Give_Flaginit 函数打开了 /flag ,用 for 循环不断申请堆,将 flag 写入到 fd_nextsize ,然后释放。循环次数和每次申请的 size 都是随机值。
由于写入到 fd_nextsize 堆块释放时,写入的 flag 没有被覆盖掉,只是在哪个 size 的堆不确定,也就是后面要爆破了。
程序菜单选择与传统题目不同的是,这个选择是用 read 函数的返回值,而不是用 atoi(buf) 。
这就让 puts 输出提示符时存在问题,read 返回值可以为 -1 ,而 menu_hin[-1] 对应是 chunk_list 中第四个堆指针地址:
申请 3 个堆填充,然后将存有 flag 的堆申请到第四个。第四个堆大小需要爆破的,在 bin 中看哪个 size 称心就选它。
再次选择菜单时,给传入一个 EOF 信号,让 read 返回值为 -1 。发送 EOF 方法参考的文章:
https://paper.seebug.org/444/
在 shell 中可以使用 ctrl+d 表示 EOF ,pwntools 可以用下面的命令发送 ...
DVRF路由器漏洞靶机题目笔记
DVRF 项目介绍该项目目标是模拟一个真实的环境,帮助人们了解 x86_64 之外的其他 CPU 架构。此固件是针对 Linksys E1550 设备量身定制的。如果您没有,请不要担心!可以用 qemu 模拟。
项目地址:https://github.com/praetorian-inc/DVRF
模拟环境主要是用 ubuntu 16 ,如果部分题目用 qemu-user 模拟不了,就转去 attify 3.0 。但是 attify gdb 插件 gef 视乎在模拟时 vmmap 查不过来 libc 地址,问题不大只是查询方法饶了一点,还是可以解决的。
ubuntu 16.04
pwndbg
Qemu-static(version 2.11.1)
gdb-multiarch
attify 3.0
下载地址:https://github.com/adi0x90/attifyos
stack_bof_01获取参数后,未校验长度赋值给局部变量造成栈溢出,有后门函数 0x00400950 :
Main 函数由 libc_main_start 调用,即 main 函数为非叶子函数, ...
IOT环境配置V2
更新环境原因概述 V1版本情况:
采用一台 ubuntu 1804 配有基本 pwn 工具、qemu static v5.2 、完整版 binwalk 等。承担固件包中单个文件模拟调试任务,以及通过 qemu 模拟异架构系统实现少部分路由器系统模拟。
采用 attify v3.0 (base ubuntu 18.04) 的 firmware-analysis-toolkit 模拟路由器系统
V1 版本出现几个问题:
首先是个小问题很容易解决,就是用 qemu uesr 模式单文件模拟调试,gdb-multiarch 有时会连不上。查了下资料、问了问师傅推测可能是 gdb 版本问题。
解决方法换个 ubuntu(16、20)就行了,qemu 都是每个系统的标配。
用 ubuntu 1804 qemu system 模式异架构系统,再在 qemu 虚拟机上运行固件。导入固件文件后,启动脚本基本在 /etc/rc.d/init.d
linux /etc/rc.d/目录的详解-cradmin
linux /etc/rc.d/目录的详解-聚优致成
这种方法能成功跑起来次数不多,但 ...
路由器资源整理
固件下载Dlink
ftp://ftp2.dlink.com/PRODUCTS
国内:http://support.dlink.com.cn:9000/
台湾/香港:http://www.dlinktw.com.tw/techsupport
加拿大:http://www.dlinktw.com.ca
老旧设备资源(均为US版):https://legacy.us.dlink.com/
TPlink
国际站点:https://www.tp-link.com/ca/support/download
调整国家缩写切换镜像
CVE 仓库 • https://github.com/PAGalaxyLab/VulInfo • https://github.com/GD008/vuln
厂商安全公告 • Dlink:http://forums.dlink.com/index.php?board=528.0 含有 patch 版本下载
漏洞披露平台 • https://www.cnvd.org.cn/flaw/list.htm
学习文档总结性 WIKI • 伏宸安全物联 ...
ZDI-CAN-11360 格式化字符串漏洞复现
ZDI-CAN-11360 格式化字符串漏洞复现复现环境
漏洞固件 http://www.dlinktw.com.tw/techsupport/download.ashx?file=11617
版本号为 v1.09
qemu v5.2
Ubuntu 18.04
ida 7.5
漏洞分析将用户可控的 cookie 的 uid 字段作为格式化字符串使用。
二进制文件在 ./web/cgi-bin/hnap/hnap_service ,定位到 Login 函数的 136 行附近:
1234567891011121314151617181920212223v6 = getenv("COOKIE"); // 提取cookie,这个提取是判断是否存在cookieif ( v6 && *v6 ){ memset(v44, 0, sizeof(v44)); v8 = getenv("COOKIE"); snprintf(v44, 128u, "%s", v ...
ZDI-20-1437 登录验证绕过复现
ZDI-20-1437 登录验证绕过复现DCS-960L 在 NHAP 服务运行 Login 时,对 username 没有异常错误处理,导致可以通过 request 得到公钥后,计算出不存在用户名的 LoginPassword 进行登录。
复现环境
漏洞固件 http://www.dlinktw.com.tw/techsupport/download.ashx?file=11617
版本号为 v1.09
qemu v5.2
Ubuntu 18.04
ida 7.5
漏洞分析二进制文件在 ./web/cgi-bin/hnap/hnap_service 的 Login 函数。
http header SOAPAction 设置为:”http://purenetworks.com/HNAP1/GetModuleProfile" ; Cookie 设置为 request 返回的值 ;html 里面包含标签 <Action>login</Action> ,进入到下面的 login 处理流程:读取 html Username 和 LoginPasswo ...