1.6k1 分钟

# 前言 D-Link DIR-816 A2 是中国台湾友讯(D-Link)公司的一款无线路由器。攻击者可借助‘datetime’参数中的 shell 元字符利用该漏洞在系统上执行任意命令。 # 1. 固件及环境 # 测试环境:Ubuntu16.04 # 固件版本:1.10B05 在官网查找对应版本(D-Link DIR-816 A2) http://www.dlink.com.cn/techsupport/ # 静态分析工具:IDA # 系统文件获取:binwalk https://github.com/ReFirmLa
3.3k3 分钟

# 前置知识 静态编译程序特点 (main 函数里实现非常简单,但是拖入 IDA 后函数窗口里的函数很复杂大概率是静态编译的,因为没有使用系统 libc 所以程序的.text 段会看起来会很复杂) # 1. 查看程序信息 32 位程序,未开启 pie,开启了 nx ida 反汇编查看 main 函数,发现有个 overflow函数 cint __cdecl main(int argc, const char **argv, const char **envp){ overflow(); return 0;}查看 overflow函数 c_BYTE *o
8.4k8 分钟

# 渗透攻击 win10(永恒之黑漏洞 CVE-2020-0796) # 前言 永恒之黑漏洞是源于 SMB 3.1.1 协议中压缩数据时没有对数据进行安全检查,引起了内存破坏漏洞,导致可以被攻击者利用从而远程执行任意代码。 这次利用的是 window10,它的漏洞源于 SMBv3 没有准确处理压缩包,在解压时没有检查客户端传过来的长度是否合法,导致 整数溢出 ,利用该漏洞,黑客可直接远程攻击 SMB 服务端远程执行任意恶意代码 # 环境 kali ip:192.168.232.129 Distributor ID: Kali Description: Kali GNU/Li
1.7k2 分钟

(之前写的没保存,这是第二遍写,我要杀人...) # 栈的结构 # 栈迁移的应用场景 栈迁移主要是为了解决栈溢出空间大小不足的问题,当我们的 ROP 链过长时很可能栈空间不够,并且 ebp 之前的空间其实只是填充一些没什么用的数据,所以需要一个新的地址空间来存放当前的 payload 我们的栈 # 1. leave 和 ret 命令 leave: mov esp , ebp pop ebp #执行pop时,ebp出栈,并且将esp地址内的值放入ebp 这里要注意 mov esp,ebp 是将 ebp 的地址付给 esp,也就是说将 esp 从栈顶拉下来到 ebp 的位
2.3k2 分钟

# 1. 程序分析 32 位程序,开启 NX 源程序: main: cint __cdecl main(int argc, const char **argv, const char **envp){ vul_function(); puts("GoodBye!"); return 0;}vul_function: cssize_t vul_function(){ size_t v0; // eax size_t v1; // eax char buf[24]; &#
3.8k3 分钟

内容参考了《CTF 竞赛权威指南 Pwn 篇》 # 一、计算机中的整数 计算机中整数通常分为两种,一种为有符号整数,另一种为无符号整数 c 数据类型 c//32 位 最小值~最大值 [signed] char -128 ~ 127unsigned char 0 ~ 255short
8531 分钟

# 1. 查看程序信息 32 位程序,保护几乎都没开启 查看 vuln 函数,发现 v0 为 eax (不过没什么用),查看一下汇编 发现有个后门函数可以读取 flag 文件 利用栈溢出返回到该地址即可 # 2.exp: nfrom pwn import *from LibcSearcher import *#context.log_level = 'debug'context(os='linux', arch='amd64', log_level='debug')p=
6811 分钟

# 1. 分析程序 64 位程序,开启了 NX 发现 case 1 中有后门函数,利用 strcat 函数进行拼接,那么我们就可以通过指令的连续执行来获取 flag 通过 ; 符合就可以分隔连续执行 linux 命令,那么我们只需要输入 ; cat flag 就能得到 flag # 2.exp (其实完全不需要,直接 nc 连接就可以): nfrom pwn import *from LibcSearcher import *context(os='linux', arch='amd64', log_level=&
2.9k3 分钟

# 1.ret2text 64 位程序,开启了 NX,明显的栈溢出 有后门字符串 点进去,然后按住 "ctrl +x" 转移到后门函数 要执行 execve ("/bin/sh",0,0) 直接利用 exp: nfrom pwn import *from LibcSearcher import *context(os='linux', arch='amd64', log_level='debug')p=process('./