![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
漏洞挖掘与利用
文章平均质量分 92
飞鸿踏雪(蓝屏选手)
住在二叉树上的小菜鸟,目标是蔚蓝的高空和绚烂的远方。草根二进制安全研究员,希望大佬多多指教
展开
-
NISACTF2023 WP
2年多没玩CTF了,pwn显得手生了不少,我的PWN环境已经在硬盘的某个角落里吃灰了。今天参加了一场校赛,捣鼓了一下午,Reverse和PWN都AK了。其实比赛是新手向,没啥难度,不过有道PWN设计的比较巧妙,got了两个tips,也就是今天将要分享的。原创 2023-04-16 23:05:33 · 592 阅读 · 1 评论 -
Stack Overflow - SROP
0x0 原理signal机制是 类unix系统中进程之间传递信息的一种方法,也称之为 软中断信号,或 软中断。整个中断过程如下:内存向进程发送 signal信号,进程就会被挂起,进入内核态。内核会用将当前进程的 寄存器值、signal信息和指向 sigretrun的系统调用地址压入栈中,这几部分信息也叫做 ucontext以及siginfo,而保存这些信息的栈位于用户空间中。之后就会跳转到注册过得 signal handler中处理相应的 signal。在 signal handler执行完原创 2022-04-13 14:15:48 · 287 阅读 · 0 评论 -
CVE-2021-1732 分析
文章目录CVE-2021-17320x0 漏洞描述0x1 受影响版本0x2 漏洞分析■ 环境■ 分析■ NtUserConsoleControl逆向分析■ xxxSetWindowLong逆向分析■ xxxSetWindowLongPtr逆向分析■ CreateWindowEx生成HWND分析■ CreateMenu逆向分析■ xxxGetMenuBarInfo逆向分析■ Win10 1909泄露内核■ 归纳几个重要的结构体及其偏移0x3 漏洞利用1.获取需要用到的函数地址2.HOOK目标函数3.精心构造3原创 2021-08-03 14:50:55 · 1197 阅读 · 0 评论 -
PWN IO中的奇技淫巧(一)
PWN IO中的奇技淫巧(一)0x0 原理本章主要讨论scanf\textcolor{cornflowerblue}{scanf}scanf函数和getc\textcolor{cornflowerblue}{getc}getc函数的内部原理,以及如何利用。【环境】Ubuntu16.04 glibc-2.23scanf\textcolor{cornflowerblue}{scanf}scanf函数的实质是调用了_IO_vfscanf\textcolor{cornflowerblue}{\_IO\原创 2021-03-12 18:22:53 · 581 阅读 · 0 评论 -
多线程中的栈溢出
0x0 前置知识我们都知道,在多线程下面修改一个全局变量会发生冲突的问题,而一般的解决方法就是给全局变量进行加锁。根据用途和策略,有读锁和写锁之分。这样子虽然解决了冲突的问题,但是不免过于麻烦。这就引入了一种叫做线程局部存储(ThreadLocalStorage)\textcolor{orange}{线程局部存储(Thread Local Storage)}线程局部存储(ThreadLocalStorage)的机制,即为每一个线程分配一个变量的实例,这种机制也可以避免上述的情况。该机制在不同的系统上面实现原创 2021-03-08 17:47:55 · 1696 阅读 · 0 评论 -
74CMS 5.0.1后台getshell(CVE-2020-35339)分析
0x0 漏洞简介骑士人才系统是一项基于PHP+MYSQL为核心开发的一套免费 + 开源专业人才招聘系统。由太原迅易科技有限公司于2009年正式推出。为个人求职和企业招聘提供信息化解决方案, 骑士人才系统具备执行效率高、模板切换自由、后台管理功能灵活、模块功能强大等特点,自上线以来一直是职场人士、企业HR青睐的求职招聘平台。经过7年的发展,骑士人才系统已成国内人才系统行业的排头兵。系统应用涉及政府、企业、科研教育和媒体等行业领域,用户已覆盖国内所有省份和地区。 2016年全新推出骑士人才系统基础版,全新的原创 2021-02-18 17:42:06 · 2836 阅读 · 1 评论 -
CVE-2021-3156 sudo堆溢出分析与利用
CVE-2021-31560x0 简介sudo是Linux比较常用的命令,它允许普通用户获得临时的root身份执行特权指令,保障了Linux系统的安全。0x1 漏洞复现【环境】:ubuntu18.04【版本】:sudo-1.8.27 输入以下POC:sudoedit -s '\' `perl -e 'print "A" x 65536'`0x2 漏洞分析(1)环境搭建首先通过输入命令查看当前系统使用的版本sudo --version下载合适的sudo,解压并编译。(2原创 2021-01-29 15:07:25 · 1640 阅读 · 2 评论 -
Windows10蓝屏事件分析
Windows10 BSOD分析近期突然曝出能够让Windows10系统拒绝服务的蓝屏符号链接:\.\globalroot\device\condrv\kernelconnect,只要在Google浏览器中输入这串字符串,电脑就会崩溃。上手就试,啪,很快啊~就崩溃了注意到发生崩溃的驱动文件是condrv.sys\textcolor{orange}{condrv.sys}condrv.sys。打开内核调试器,重新尝试。根据调用栈分析,在浏览器中输入这串字符串的时候,浏览器调用了GetFileAttri原创 2021-01-22 10:18:32 · 5957 阅读 · 4 评论 -
Seacms6.27代码执行分析
分析首先利用代码审计工具打开网站目录,尝试搜索能够执行代码的函数。首先想到的是eval,实际上该cms的代码执行漏洞正好是eval发起的。搜索到包含该函数的信息很多,主要关注的是include/main.class.php里的如下区域:引用该文件的页面是搜索页面在每个 eval() 上面都加一句输出,看看传进来的参数的变化。根据输出的结果来看,此处并没有任何过滤,因此接下来的 eval 将会执行代码。所以Poc :http://127.0.0.1/search.php?searchty原创 2020-09-01 18:21:14 · 282 阅读 · 0 评论 -
easy file sharing web service 7.2 buffer overflow分析
测试【环境】:win7x86,kali引用网上公布的资料,编写测试脚本。首先利用msf生成一段pattern,用于后面的问题分析。msf-pattern_create -l 5800 套用脚本#!/usr/bin/env python# coding=utf-8import socketfrom struct import packhost = '192.168.197.134'port = 80a = socket.socket()pattern=...a.send("H原创 2020-06-04 10:53:46 · 277 阅读 · 0 评论 -
windows内核提权(一)之栈溢出
前言这个学期在做一个安全软件项目,涉及到windows的驱动开发,也因此项目为我敲开了windows内核的大门。这里面的东西奥妙无穷,亟待探索。环境HackSystem的作者专门为教学windows内核安全而写了一个漏洞驱动HEVD,里面包含了基本的堆栈溢出漏洞,并附带了EXP。我下载的是最新版的HEVD3.0。windows7 32位分析首先使用IDA静态分析一下,找到D...原创 2020-04-24 17:40:58 · 824 阅读 · 0 评论 -
虎符CTF2020 部分题目复现(连续更新)
PWN0x0 MarksMan【保护】:【代码】:很明显程序一开始就向我们泄露了libc的内存,如果通过检测,就可以任意地址写3个字节。如果能找到一处可控的调用,直接修改程one_gadget就可以了。看看这个check检查了什么这是过滤了部分字节,默认的one_gadget只能查看很少的可用地址,需要加上 -l参数,并指定一个较小的数字,如2,这样就能够得到更多可用地址。现...原创 2020-04-22 20:24:26 · 1690 阅读 · 0 评论 -
LCTF-2017 2ez4u
保护分析典型的菜单型程序,可用的操作用增删改查。添加操作的伪代码:可以得到一个大概的结构体struct Apple{size_t Color;size_t Value;size_t Id;char Description[size]};这里需要注意一点,Color,Value,Id 占去了一个chunk 结构的 fd,bk,fd_size。输入也存在0截断:删...原创 2020-03-30 19:22:39 · 505 阅读 · 0 评论 -
D0g2019-pwn heap WP
保护分析程序主要漏洞有两个,分别是在一开始的输入操作中:存在格式化字符串漏洞,可以泄露内存。这里首先泄露出程序的基地址和libc的内存,为后续利用做准备。第二个漏洞存在编辑操作中:程序在创建note的时候做了限制,正常情况下只能申请unsortbin及其以上的chunk。由于一开始我们就可以获得内存,所以直接利用unlink是最快的,然后利用IO_FILE去getshell。...原创 2019-12-04 13:50:58 · 278 阅读 · 0 评论 -
HackGame2019 impossible WP
保护分析void __fastcall main(__int64 a1, char **a2, char **a3){ char buf; // [rsp+0h] [rbp-110h] __int64 v4; // [rsp+40h] [rbp-D0h] unsigned __int64 v5; // [rsp+108h] [rbp-8h] v5 = __readfsqw...原创 2019-10-27 14:50:37 · 499 阅读 · 0 评论 -
N1CTF2019——babypwn WP
保护我的测试环境为ubuntu16.04.1分析添加操作中限制只能添加10个结构体:结构体为:struct Staff{ char Name[0x10]; char *Description; int Description_Size;};漏洞存在删除操作中:总的二进制程序逆向分析到这,下面来考虑怎么利用。利用这道题和warmup那道题有点相似,但...原创 2019-10-13 15:01:37 · 567 阅读 · 0 评论 -
N1CTF2019——warmup WP
前言国内实力战队出的题目质量都非常高,我不敢想象这就是pwn的签到题。首先说一下这道题如何质量高。这道题涉及到了double free、UAF、tcache attack、IO_FILE的利用。赛后复现用去了我差不多3天的时间来钻研。保护分析程序只有增加、删除、编辑三个操作,并且保护全开,这种情况下只能利用IO_FILE来泄露内存。增加操作中已经限制了分配的大小:漏洞有些隐蔽,...原创 2019-10-12 09:44:48 · 744 阅读 · 0 评论 -
MagicHeap-WP
保护分析主要漏洞在编辑函数中,对输入大小没有检验,导致堆溢出 unsigned __int64 edit_heap() { __int64 v0; // ST08_8 int v2; // [rsp+4h] [rbp-1Ch] char buf; // [rsp+10h] [rbp-10h] unsigned __int64 v4; // [rsp...原创 2019-08-05 11:02:31 · 253 阅读 · 0 评论 -
House of sprit一谈
简介House of sprit 是将要free的指针改为我们伪造的指针,使其free之后进入fastbin,然后在下次malloc 的时候能够得到我们伪造的地址,从而控制该地址。在伪造前,我们需要了解一下fastbin chunk的结构,大致如下: struct fastbin_chunk{ size_t prev_size; size_t size; fast...原创 2019-08-15 11:46:19 · 237 阅读 · 0 评论 -
Heap-Unlink一谈
前话原理在这就不说了,很多博主说得都非常的详细,我也是从他们那里学到的。本篇主要就是讲解常见的Unlink利用。主要分为有泄漏操作和无泄漏操作。有泄漏操作就是能够输出堆中的信息,无泄漏就是不能泄露堆中的信息。有泄漏操作ZCTF-2016-note2【保护】:RELRO保护一定要非常注意,如果是这种情况下(部分开启),说明任意函数的got表都可写;如果是完全开启(FULL)...原创 2019-08-12 15:34:16 · 414 阅读 · 0 评论 -
Fastbins dup_consolidate探究
演示代码#include <stdio.h>#include <stdint.h>#include <stdlib.h>int main() { void* p1 = malloc(0x40); void* p2 = malloc(0x40); fprintf(stderr, "Allocated two fastbins: p1=%p p...原创 2019-08-29 20:49:39 · 283 阅读 · 0 评论 -
堆上的off-by-one+unlink
off-by-one由于对字符串长度校验不恰当,导致写入数据的时候多写了一个字节,这种情况就叫做 off-by-one 。正所谓一个巴掌拍不响, off-by-one 也是,必须要结合其他的漏洞或者程序的具体实现才能真正构成威胁off-by-one 有两种形式:(1)多写入一个任意字节,示例代码:for(int i=0;i<=len;i++){ read(0,buf[i],1...原创 2019-08-31 00:06:16 · 465 阅读 · 0 评论 -
ByteCTF-mheap WP
保护分析程序首先分配一个 4096 大小的内存,内存基址指定为 0x23330000:并自己实现了一套堆分配机制,类似于 fastbin ,通过逆向分析得其结构如下: typedef struct Chunk{ int Size; Chunk *Fd; Chunk *Bk; }分配大小以 16 字节对齐,并且没有大小限制,导致可以分配超出 0x2...原创 2019-09-16 15:28:40 · 462 阅读 · 0 评论 -
mulheap WP
前言这题我当时在比赛的时候只停留于表象,结果被骗了,没有看出来漏洞,也没做出来,太亏了。结束后看到别人的题解,才发现还真是“水题”。保护分析程序使用 LLVM 编译的,开了控制流。但是根据字符串的提示,还是很容易找到各个操作对应的函数,影响不是很大。习惯性的只看反汇编代码,竟发现没有漏洞!!!而删除操作,貌似没有真的释放。那怎么搞?后来才知道是 LLVM 把真相给掩藏起来了,...原创 2019-09-17 08:49:33 · 143 阅读 · 0 评论 -
ByteCTF2019-notefive WP
保护分析程序有添加、删除、编辑操作。添加的时候限制了大小:也就是说分配的chunk都在unsortbin以上。 删除没什么问题,主要漏洞只有一个,那就是在编辑中存在off-by-one:程序没有输出操作,开启了aslr。所以要构造以下攻击链:利用off-by-one构造heap overlaping。 利用unsortbin attack改写global_max...原创 2019-09-28 17:00:18 · 571 阅读 · 0 评论 -
DelCTF2019 weapon WP
保护分析程序一共只有三个操作:增、删、改。又是没有泄露,看来又是利用IO_FILE泄露内存了。漏洞还是很明显的,在删除操作中没有将free掉的指针置NULL并且编辑的时候没有检测指针的合法性,因此形成了UAF。在添加操作中限制了分配的大小利用程序中多处存在scanf函数,根据前面的文章可以知道,scanf可以帮我们得到一块unsortbin的chunk,我们构造的攻击链如...原创 2019-10-06 18:06:27 · 362 阅读 · 0 评论 -
RCTF-RCalc WP
保护分析IDA分析代码,部分函数名经过我的分析已被重置这部分函数主要就是申请了两个,我称之为calc的结构,并给该结构中的buf成员申请空间。这个函数很明显存在栈溢出,值得注意的是scanf("%s",v1)是以空格作为输入结束的标志,并且作者刻意实现了自定义的canary保护。在一开始随机一个数,存放在answer中,在尾部又从前面申请的calc结构中取出来进行对比...原创 2019-07-28 22:57:47 · 605 阅读 · 0 评论