自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(126)
  • 资源 (3)
  • 收藏
  • 关注

原创 linux内核-内存管理slub分配器

slub分配器使用kmem_cache数据结构slab分配器的对象单位–>管理自己的kmem_cache–>kmem_cache存在于slab_caches双链表中kmem_cache里的一些小slab对象–>存在于“kmem_cache_node->partial”中 --> 每个node对应于kmem_cache_node数组项kmem_cache里的另一部分小slab对象–>存在于“kmem_cache_cpu->partial”中slab中没有

2022-04-23 17:40:14 1566

原创 2018-qwctf-core_give

题目:2018-qwctf-core_give拿到压缩包后发现vmlinux文件,就不需要手动解包了,然后解包core.cpio包,得到core目录如下:└── core ├── bin ├── etc ├── lib │ └── modules │ └── 4.15.8 │ └── kernel │ ├── arch │ │ └── x86

2022-04-18 11:25:29 346

原创 vim\neovim美化 + 终端美化配置

VIM为了方便大家在不同的平台都能成功配置,考虑到不同的包管理下载的vim都是不同版本的,这里直接采用源码编译版本进行使用效果图:用了一段时间的spacevim 因为非常讨厌它的底部弹窗,索性该用vim脚本:#安装代码提示插件 #依赖sudo apt install g++-8sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 800 --slave /usr/bin/g++ g++ /usr/bin/g+

2022-04-15 17:15:29 4139

原创 接触内核pwn(babydriver)

文章目录分析思路保护gdb调试exp利用整体思路如下:分析拿到babydriver题目附件后得到的文件如下:发现运行内核就报错,内容如下:Could not access KVM kernel module: No such file or directory qemu-system-x86_64: failed to initialize KVM: No such file or directory未能初始化kvm,大概率是因为系统不支持虚拟化,具体可通过如下命令查看是否支持egrep '^

2022-04-11 22:50:57 1272 1

原创 linux 提权攻击姿势

流程用户态 —-> 内核态I.切换GS段寄存器 通过 `swapgs` 切换 GS 段寄存器,将 GS 寄存器值和一个特定位置的值进行交换,目的是保存 GS 值,同时将该位置的值作为内核执行时的 GS 值使用II.保存用户态栈帧信息 将当前栈顶(用户空间栈顶)记录在 CPU 独占变量区域里,将 CPU 独占区域里记录的内核栈顶放入 rsp/espIII.保存用户态寄存器信息 通过 push 保存各寄存器值到栈上,以便后续“着陆”回用户态IV.通过汇编指令判断是否为32位V.控制权转交

2022-04-11 22:43:16 731

原创 linux 内核搭建

文章目录@[toc]通过busy box搭建文件系统/sbin和/bin/usr/sbin和/usr/bin其他文件类型配置初始化脚本配置用户、用户组配置glibc也可写入完整命令脚本一键搭建完成:打包文件系统为镜像!!!请不要用ubuntu20搭建kernel环境,报错太多了,我已经投靠ubuntu18(ubuntu16也可以)的部下了!!!!下载内核4.4.72内核编译、生成qemu启动qemu内核运行编译内核模块运行到内核内核I/O接口通信编程方式一:在内核态通过虚拟设备节点方式实现用户态通信(设备)

2022-04-11 22:41:51 2126

原创 Linux-4.4.72内核(uaf-tty_struct-babydriver)

题目:2017 CISCN babydriver附件文件给boot.sh加上-s调试参数解压rootfs.cpio后拿到./lib/modules/4.4.72/babydriver.ko漏洞文件vmlinux-to-elf bzImage vmlinux得到vmlinux内核下面即可分析和编写exp了保护分析将babydriver.ko放入IDA中进入到babydriver_init模块入口函数,简单分析如下:模块流程核心函数如下:babyopen函数:可以注意到参数分

2022-04-11 22:34:43 700 1

原创 X86汇编---寄存器+指令

文章目录X86汇编常见的寄存器x86汇编指令集大全X86汇编常见的寄存器4个数据寄存器(EAX、EBX、ECX和EDX)2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP)6个段寄存器(ES、CS、SS、DS、FS和GS)1个指令指针寄存器(EIP) 1个标志寄存器(EFlags)------------------------------------------ 一、数据寄存器 ---------------------------------------------

2022-04-10 13:23:00 1631

原创 unlink(freenote_x64)

保护分析init_large_chunkshowneweditdelemalloc有限制,大小只能为0x80的整数倍如0x80、0x100、0x180edit有个realloc函数且带有uaf漏洞dele函数也有uaf漏洞,当时没注意到!!!因为dele函数有uaf所以realloc的uaf漏洞本exp没用到。。。。。。思路因为有uaf就可以很方便的泄漏heap地址和libc地址add(0x80,'0') #0add(0x80,'1') #0add(0x80,'2

2022-03-26 23:05:56 680

原创 heap_overflow(OGeek2019-bookmanger50)

题目:OGeek2019-bookmanger50保护分析add_chapteradd_sectionadd_textrm_chapterrm_sectionrm_textshowedit思路这题的漏洞非常多有uaf,off-by-one,堆溢出因为漏洞太多以至于给我整不会了,ida逆向时看起来挺复杂其实就是一个常规的简单堆题,我在做unsort bin泄漏libc时把堆空间整坏了,做题时我没注意到泄漏方式的问题导致我后面做的怀疑人生,导致花了非常多时间,其实这

2022-03-25 17:13:07 506

原创 IO_FILE(npuctf_2020_bad_guy)

是一道入门IO_FILE的题目保护:分析:Add:Edit:dele思路没有常见的off-by-null,和uaf,但是edit函数可以编辑任意大小的size,且最多malloc10次,edit4次那么就可以利用堆重叠进行攻击因为这题需要爆破,所以为了在本地便于调试所以关闭系统的地址随机化(不是永久的)1.将chunk2放入到0x70fastbin,便于后面的修改fd指针指向__IO_2_1_stdout的上方处 malloc(0,0x10) malloc(1

2022-03-24 18:21:00 540

原创 沙盒禁用+堆栈结合+反调试-ciscn_final_4

这题比较好玩题目采用了沙盒禁用+堆栈结合+反调试保护分析main函数watch函数结合我的注释看,这题是有反调试的,所以就我们在本地打的时候可以将这文件的反调试部分就nop掉,之前会一点点逆向的题,所以也没耗多少时间,具体nop手法看我的另一篇文章[链接]:121312nop后的main函数:new函数mwrite函数delete函数总结:add函数可以malloc 32次有打印堆数据函数delete函数有uaf漏洞运行程序后说不能执行系统调用(嗯~)之前没遇到过

2022-03-24 17:41:08 553

原创 fast_attack+unlink(wdb_2018_1st_babyheap)

题目:wdb_2018_1st_babyheap保护分析alloc函数:free函数:edit函数:这题我干掉了睡眠函数,idapython脚本如下:addres_start = 0x400CE3addres_end = 0x400CEDfor i in range(addres_start,addres_end): ida_bytes.patch_byte(i,0x90)这题的的漏洞还是挺多的uaf、off-by-null、double free但是off-by-nu

2022-03-01 16:46:01 413 1

原创 tcache-off-by-null-LCTF2018_easy_heap

保护分析main:malloc:free:puts:这题的保护措施做的很好,常见的free函数也没问题,但是这题有个off-by-null的漏洞,因为这题的限制条件较多所以考虑用堆重叠(overlapping heap chunk),然后就可以进行对重叠的chunk进行double free写入one_gadget到free_hook进行getshell因为这题写入content时限制了\x00字符,那么在写入字节流时就会断掉写入首先构造unsortbin进行合并的prev_siz

2022-02-09 23:46:45 692

原创 pwn题切换不同glibc版本实测

做pwn题目到了堆题目就是和glibc打交道,所以系统默认的一个libc肯定是满足不了各种题目类型的需求的,刚开始学习pwn时就看别人文章说最好一起下载ubuntu16\ubuntu18没想明白是为什么,直到接触了堆题,哦~原来如此,不过因为我是将ubuntu20安装在了物理机上,所以就想办法给整合在一起了看了网上大佬们的一些玩法,大概流程就是自己下载libc源码进行编译然后修改程序so文件路径,听起来简单,琢磨了一晚上终究还是没有编译出来,后来还是用下载源码+通过patchelf进行替换,试了下好像确实

2022-01-28 01:31:20 4316 4

原创 house-of-force-bctf2016_bcloud

题目:bctf2016_bcloud不得不说这题细节做的真好,如果不认真看还真找不到利用点保护分析main函数:add函数:因为在malloc是加上了4所以通过这里off-by-null行不通dele、edit函数没有常见漏洞重要函数0x80487A1函数:0x804868D函数:注意看我注释上面的序号当我输入长度为0x40时,经过read函数会在后面填充一个null字节,但是因为原本这块栈空间本来就经过了初始化全是null,所以并不会对数据造成影响,到了第二步malloc

2022-01-28 01:27:16 1153

原创 off-by-one-0ctf2018_babyheap

题目 : 0ctf2018_babyheap保护分析add:edit:deleshow因此程序保护较完善,且只能malloc最大值为0x58,参加的uaf漏洞也关闭了,那么这题还是有个off-by-one漏洞但足以致命,解题思路:—> 泄露libc —> 修改main_arena中的topchunk指针为__malloc_hook处 —> 申请一个chunk则是_malloc_hook写入one_gadget —> getshell利用堆重叠进行libc泄

2022-01-24 17:24:09 446

原创 off-by-one-bookstore

题目 : hacklu2015_bookstore保护分析题目嵌入函数层级不多该程序和平时的堆体不太一样,漏洞很明显,没有提交malloc的选项,但是选项5有个malloc(0x140)那么因为存在堆溢出漏洞,所以通过溢出ptr1到ptr2的头部进行修改为0x150再释放ptr2进行提交时因为uaf的原因即可重新分配到ptr2+dest的堆块内容信息#------------start----------------dele(2)payload = b'A'*0x88edit(1,p

2022-01-23 19:20:24 2606

原创 house-of-einherjar-tinypad

题目 : secconctf2016_tinypad保护分析add部分:edit部分:dele部分:自带的show部分:其中堆块信息保存在tinypad[0x100]处理解图如下:思路上面ida分析的注释中对应解释了程序漏洞所在,那么首先进行libc泄露,首先malloc 4个chunk其中chunkA :必须为unsort bin且size必须是8(十六进制)结尾,因为如果malloc 0xe8 ----真实大小—> 0xf0这时可以写入的数据为0xe8 通过

2022-01-19 19:21:15 596

原创 off-null-byte-plaiddb

题目: plaidctf2015_plaiddb ->datastore分析[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UTd2LGgx-1642508657858)(posion-null-byte(plaidctf2015_plaiddb)].assets/image-20220118010052651.png)这题不用纠结这个二叉树算法,解题思路和算法方面关系不大put函数:(用于添加键值对)[外

2022-01-18 20:27:27 574

原创 off-by-null-b00ks

题目: asisctf2016_b00ks保护除了canary全开,因为是堆题,所以基本可以认为保护措施全开分析主函数程序封装的read函数add函数由add函数可得出以下结构示意图:dele函数edit函数show函数init_name函数重命名的bss段[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3pp7b6E3-1642340360854)(off-by-null.assets/image-2022011620005682

2022-01-16 21:43:10 447

原创 unlink-sleepyholder

unlink(sleepyholder)题目: hitconctf2016_sleepy_holder(就是进阶版的hitconctf2016_secret_holder)函数分析:addupdatedele总结 : 程序很简单,可以malloc三种类型的chunk,fast chunk \ large chunk \ large chunk(mmap()分配),明显的漏洞有uaf漏洞\double free漏洞,值的注意的是huge_chunk在被创建后就不能修改和删除了往往简单的一

2022-01-14 01:59:58 321

原创 unlink-secretholder

题目 : hitconctf2016-secretholder保护:add函数:dele函数:update函数:总体下来可以发现程序很简单,漏洞有uaf 和 double free,堆块类型是否可以malloc \ 修改由bss段中的xx_is_use决定,无pie,可通过修改got表或者将one_gadget写入__malloc_hook__free_hook中getshell,那么这里的限制条件就是只能malloc三种类型的chunk,分别是一个fast chunk和2个large

2022-01-13 15:28:46 315

原创 house-of-spirit-pwn200

前言 : 因为期末考试加上复习的原因,接近一个月没有做pwn题了,放寒假就回来在物理机上面装了个ubuntu(折腾了几天,不过装好了做题环境还是挺好用的),打算这个寒假学习完堆知识.来年好好上课(大三压力大!)有空打打比赛.例题 : lctf2016_pwn200house-of-spirit利用条件:(1)想要控制的目标区域的上方空间与下方空间都是可控的内存区域(2)存在可将堆变量指针覆盖指向为上方可控空间,从而达到将非可控空间与可控空间进行合并变成fake_chunk(有点像unlink)(

2022-01-11 15:45:11 2700

原创 物理机-ubuntu系统搭建+全局美化

文章目录1.下载ubuntu2.美化ubuntu注意的点 :3.终端美化4.vim美化前言 : 寒假回来想着把堆攻击学习完,打算这段世间就只学习pwn索性就直接在物理机上面安装了ubuntu ,过程也不是很顺利,然后又美化了一下ubuntu,ok,下面就是我这几天总结出来的经验(下面的网站有的可能需要翻墙! )1.下载ubuntu准备 :一个大于4G的U盘 ,用于当作系统盘(买U盘的时候注意问下支不支持作系统盘!)下载你要安装的ubuntu镜像(ios文件) 在清华大学镜像站下载 : 链接 ,

2022-01-09 16:43:06 1879

原创 计算机组成原理期末复习比较

工作原理:存储程序:将程序存放在计算机的存储器中程序控制:按指令地址访问存储器并取出指令,经译码依次产生指令执行所需的控制信号,实现计算的控制,完成指令功能计算机组成硬件主机部分:运算器(CPU)+控制器(CPU)+内存储器(内存)。运算器:算术运算(+、-、*、\);逻辑运算(与、或、非、移位、异或等);基本结构(寄存器、连接通路)控制器:控制程序和数据的输入、运行处理运算结果存储器:用于储存数据、运算中间结果,容量为1K = 10条地址线,1M=1024k=20条

2021-12-29 23:48:57 1395 1

原创 linux线程

文章目录一、线程二、线程分离回收回收资源:1. 使用pthread_join()函数进行回收2. 使用线程分离属性使系统自动回收:获取线程返回码线程取消线程终止释放、清理三、信号处理信号发送信号接收可靠信号&&不可靠信号四、多线程信号处理本课题环境:ubuntu16、glibc 2.23一、线程概念:线程是操作系统能够调度和执行的基本单位,在Linux中也被称之为轻量级进程线程定义在pthread.h文件中,那么要创建线程就要进行引用预编译,线程创建函数定义如下:#includ

2021-12-23 11:20:15 2645

原创 东软杯-pwn-justdoit

第一届东软杯pwn-justdoitida分析通过伪函数分析发生没有什么漏洞,也没看到malloc、free、new关键字,那么一定是栈题、函数中也没发现缓冲区溢出,那么就找程序中一些奇奇怪怪的代码配合汇编一起看。最后在main汇编代码里面发现了这个加上测试程序时报了段错误那么程序漏洞利用点必是这里无疑,既然rbp的值可以控制,因为rbp与程序执行流密切相关,那么我输入一个地址将rbp置于它的上方即可达到劫持执行流。因为程序没有后门,嗯,保护措施如下:思路:可用got表劫持,libc泄漏

2021-12-10 20:22:20 804

原创 unlink 攻防世界4-ReeHY-main

例题:攻防世界 4-ReeHY-main当一个chunk释放为unsort bin时会检查上下是否为free chunk,如果上为free chunk则发生合并、合并后会调用unlink函数:(2.23)/* consolidate backward */ if (!prev_inuse(p)) { //当前的p标志位为0(上个chunk free) prevsize = p->prev_size; size += prevsize; //本chunk的size

2021-12-10 12:39:10 687

原创 unsort bin attack -攻防世界 noleak

带着问题的学习是有效的例题:攻防世界noleak ,这题解法好像有多种但是我是刚接触堆也是抱着学习的姿势学习攻击思路,这里就先例举我看明白的2种方式(爆破(在爆破__malloc_hook文章里面)、unsort bin攻击)在ida分析后得到以下结果:总结:1.用于保存chunk指针的bss数组最多存储10个2.free时有double free、uaf漏洞3.可以编辑free chunk数据,有堆溢出漏洞4.因为程序简单但是因为开了got不可写的措施导致题目有了很多玩法没有开N

2021-12-09 14:16:28 873

原创 爆破malloc_hook -攻防世界 noleak

例题:攻防世界noleak首先在不用unsort bin的情况下进行攻击,那么我们怎么拿到__malloc_hook的地址呢?攻击思路:将shellcode放入程序的bss段(0x601020)通过__malloc_hook执行bss中的shellcode,为什么需要爆破呢, 因为我们实际上是获取不到 maloc_hook的地址的只是将它写入到了一个地址处,然后通过fast bin attact 攻击,因为fast bin的fake chunk需要检查size位,既然创造size位,那么libc-2-2

2021-12-09 14:11:37 641

原创 uaf-逻辑题-攻防世界 supermarket

刚开始我也被这题绕晕了,做这种题要画图画图!!!不然很容易做着做着忘了自己做到哪里来了本题环境是ubuntu16、glib2.23!!!我第一次做的时候用的ubuntu18也就是glib2.27这时有tcache freechunk的分配策略不一样死活跑不出来,这题我还要研究一下tcache版本的。首先申请了一个不在fastbin范围(0x10~0x58)的chunk0,然后再申请一个随便大小的chunk1,解释:因为下面我将要用remalloc重新分配chun0,remalloc如果重新分配的ch

2021-11-30 13:12:55 522

原创 uaf-逻辑题-BUUCTF hacknote

首先拿到题目是个菜单题,在ida中进行手动识别重命名函数如图:首先按照程序流程配合程序一起分析add函数如图:通过上面分析可知,ptr_array是一个全局数组长度为5,然后进入if判断这个“*(&ptr_array + i)”也就是ptr_array[i]那么这就对每个数组里面的内容进行判空,那就是说这个数组里面的数据是否被add过。然后就是给数组里面每个分配了一个大小为8byte的chunk实际分配是0x10,然后这句“**(&ptr_array + i) = m_puts”实

2021-11-28 14:10:45 445

原创 reverse入门迷宫题

记录第一次接触逆向迷宫题,第一次接触的时候感觉很懵逼,首先不知道这是一道迷宫题,还是按一起的逆向题解法,什么该程序逻辑啊分析算法啊,再没有接触pwn之前,拿到附件就只想把题目改成我想要直观运行的样子,现在回头来看认真分析题目还是挺简单的题目是攻防世界新手区逆向里面maze:拿到题目如图:(我对一些重要的代码进行重命名以便了解程序)从开头的那一部分就知道了flag的格式,很多逆向题目都是这个套路,然后下面的循环体就是循环flag中间的18个字符,上面每个函数的大概作用我都有标记,核心函数就是chec

2021-11-27 14:01:08 1099

原创 堆UAF-攻防世界time_formatter

终于来到了传说中的堆,这是攻防世界里面的堆第一次,刚遇到的时候有点懵逼,看了wp也看不懂,后来才知道是堆题。。。嗯,我回来了,哈哈哈哈,首先详细了分析了一波题目,先把重要的函数例举出来纵观全局在我菜鸟看来就只有个system(“asdadasd;/bin/sh;as21sad12e”);这个漏洞,因为system的参数由我们控制,所以就有无限可能,这里有两个全局变量,第一个被格式化为整型了,另一个是字符串类型,那么就是构造";/bin/sh;"的最好容器,嗯,如图:可以看到ida列出来对ptr

2021-11-23 18:35:11 3514

原创 pwn-这里等学完堆再来记详细笔记

这题就简单的记录下吧。也不是很难,就是几个点,反之现在每做个题都能get到新知识嗯题目我简单的分析了下大概就是5个选项,我记得每次这种题就是靠你逻辑,每个选项都是有用的,代码量少的题目不会有无用代码每个选项就如puts函数提示所说有着对应的功能,这里说下每个函数注意的点Select1 : 对ptr进行了赋值为time_format,并占用了buf内存Select2 : 对dword进行了赋值为timeSelect3 :对value赋值为time_zone,但是之前在select1中也是调

2021-11-19 20:00:05 279

原创 记录一次64位构造读取flagROP链、远程关闭控制写入

原程序攻防世界Recho(这题本地测不出来,只能远程)根据大佬wp的情况下完成的整个程序是个死循环需要用到pwntools的p.shutdown(‘write’) #关闭控制台写入循环,然后这题没有后门函数,因为关闭了shutdown(‘write’)控制台输入后(远程)就输入不了了,只能等程序重新运行,因为程序压根就执行不到return指令,经过shutdown后也就是说return指令只会被执行一次,所以就只能一次性获取sh、或者cat flag这题通过ROPgadget的强大之处,因为程序里面

2021-11-16 21:38:19 542

原创 《攻防世界》forgot栈空间题

哈哈哈,讲下这题的思路,拿到题目又是一大堆的字符串显示在控制台上,本想着又是一道逻辑题,披着逆向算法的外套,害,没办法继续分析前面输入name用了fgets函数但是限制输入长度了,所以直接忽略,然后就是输入一个数对其进行简单的小算法了,我显示分析了一波算法,然后根据出题人的提示说这个,但是我好像还是摸不清题目的漏洞在哪里,就一直摸摸摸,先是简单的看了下全局伪代码,加上程序运行状况,发现你输入的数就算是通过了9层判断条件好像也是一样的打印一些字符串这十个函数里面都是一样的没什么区别然后出题人那个提示

2021-11-16 15:40:43 3057

原创 《攻防世界》stack2逻辑漏洞题

到了进阶题目越来越好玩了,发现解出来一道题有解数学那味了嗯,拿到题目一看逻辑题,做题刚打完比赛(第一次)被逆向和pwn的逻辑题给整怕了,这次遇到这种题目,我选择硬刚!首先读懂题目的内在逻辑,并关注常见的pwn漏洞,首先一步步分析这里有个循环100次接收输入,全局的看了下都是在对buf操作,先标志一手,但是这里无法产生溢出,那么看下面首先看到for里面初始化j = v5 ,那么这个j也就是我们可控的标记一下,然后就是死循环,每次循环后调用一次printfselect1就是显示所有值、select

2021-11-16 10:29:51 3809

原创 LibcSearch报错 LibcSearcher找不到合适libc 最新解决方案

如果大家在执行Libcsearch 的pyload时发生报错信息翻译过来时找不到适合的libc,这是因为极大可能你使用的环境是python3而你参照网上的pwn环境搭建时,你下载的LibcSearch它不支持py3!!解决方式:用pip3下载另一个大佬更新的版本 命令如下:pip3 install LibcSearcher安装完成后用py3运行payload,由原来的本地libc查找改为了云端,也就是说需要联网才可以执行这个库,但是不影响平时练习,除非你进入了CTF决赛。。我安装新版后用py3执行

2021-11-06 13:21:11 4519 13

函数极限与连续性-张宇老师学习笔记 包含latex 源代码以及成品PDF

函数极限与连续性-张宇老师学习笔记 包含latex 源代码以及成品PDF

2023-08-20

计算机网络学习笔记,计算机网络学习笔记,计算机网络学习笔记,计算机网络学习笔记,计算机网络学习笔记

计算机网络学习笔记,计算机网络学习笔记,计算机网络学习笔记,计算机网络学习笔记,计算机网络学习笔记

2023-07-30

sm整合jar包.rar

Mybatis相关jar和Spring整合Mybatis所需jar,Spring 相关jar没有上传

2020-04-21

jdk1.8.4*(开发专属)

jdk1.8.4*(开发专属)

2021-03-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除