网络安全
文章平均质量分 88
__lifanxin
砥砺前行,不忘初心!
展开
-
python 中三种方法实现十六进制 str 到 bytes 的转换
十六进制 str 到 bytes 的转换概述str ⇒ bytes总结概述 这里记录做 ctf 题目过程中编写 python 脚本常碰到的字符和字节的转换问题,不同于一般的字符串转字节,和二进制打交道遇到的都是以字符串形式表示的十六进制串,需要将其转换为字节做进一步的处理,所以才有了本篇博客的记录点。str ⇒ bytes python 代码如下。# res 为测试样本res = "B75285C190E907B8E41AC3BD1D8E8546002144AFEF7032B511C6"原创 2021-11-15 23:23:53 · 7743 阅读 · 0 评论 -
2021-鹏城实验室网络安全技能大赛-pwn-babyheap 题解
Write Up文件信息漏洞定位利用分析WP总结文件信息 本题来自于2021年的鹏程杯比赛的pwn题,题目链接如下:2021-鹏程杯-pwn-babyheap。 该题目主要考查了libc-2.29.so及以上版本的off-by-null利用方式,本题目使用的是libc-2.31.so,知识点学习推荐博客glibc2.29下的off-by-null。同时作为堆题,保护全开,没有可用的show功能函数,必须使用IO_FILE来leak libc,知识点学习推荐博客pwn题堆利用的一些姿势 – IO_F原创 2021-09-28 20:42:31 · 2464 阅读 · 7 评论 -
CTF 逆向工具angr的学习笔记
angr概述基本用法总结概述 angr 简单介绍一下angr,借助官方的原话就是 – A powerful and user-friendly binary analysis platform!,一个功能强大且用户友好的二进制分析平台。这里主要总结一下使用angr解决ctf逆向题的一些用法和套路。 安装的话,大家可以直接使用pip安装,不过这里可能会遇到一个小坑。我在安装angr之前已经安装了pwntools,此时再安装angr,由于有一个依赖库两者需要的版本是不一样的,所以安装后导致pwnt原创 2021-09-14 23:12:09 · 3941 阅读 · 2 评论 -
羊城杯_2020_babyre 题解
babyre题目信息考查知识题目分析WP脚本总结题目信息 本题目来自于2020年羊城杯的逆向题,可以在buuoj上找到题目复现。考查知识 本题目考查的知识点有:DES/AES算法,SMC自修改代码,以及合理利用动态调试来快速解题。 关于动态调试,这里很多人可能会遇到环境问题,主要是因为题目调用了openssl的动态加密算法库,所以本地也得有一个。同时还需要注意openssl加密算法库的版本问题,该题目必须使用libcrypto.so.1.0.0。这里我给出该算法库文件 – libcrypto原创 2021-09-09 15:33:56 · 1214 阅读 · 0 评论 -
CTF pwn/re手在学习过程中的零碎操作积累
零碎操作积累概述使用指定版本的libc运行pwn题使用指定版本的libc编译源程序总结概述 谨以此片文章为我那不争气的记性做个记录,随便造福大家,另外如果各位看官也有些骚操作或者基操的话,也请不吝赐教,留言评论,在下定临表涕零,感激不尽。使用指定版本的libc运行pwn题 这里给几个下libc的网站:ubuntu glibc官网清华大学开源镜像站 使用指定版本libc运行pwn题的终端操作:# 指定libc$ LD_PRELOAD=/usr/local/libc/libc-2.2原创 2021-09-06 21:55:59 · 1526 阅读 · 0 评论 -
tea系列加密算法学习笔记
tea系列加密算法概述tea算法xtea算法xxtea算法总结概述 最近在做ctf逆向的题目中多次遇到了该算法,因此打算重写一篇完整的博客来详细学习下该算法。 TEA(Tiny Encryption Algorithm),是一种分组加密算法,实现过程比较简单,从其名字也能看出这是一种微型的加密算法,效率极高。该系列一共有三种算法,tea --> xtea --> xxtea,从右往左依次是前面的升级版。此系列算法都使用了一个神秘常数作为倍数,源于黄金比率,程序中一般写作0x9E3779原创 2021-09-03 10:56:22 · 4050 阅读 · 0 评论 -
x86汇编语言杂记
杂记概述汇编语言中"\x00"的妙用总结概述 这里记录一下在做ctf比赛过程中遇到的一些特殊汇编指令以及利用一些opcode来解题的方式,一来防止忘记,二来方便他人。汇编语言中"\x00"的妙用 本小节的灵感来自于pwn题 – starctf_2019_babyshell,buuoj上有复现,题目本身很简单,分析过程就不贴IDA截图了。题目的意思就是让我们直接输入一段shellcode,然后会执行它,当然输入的shellcode必须是在规定的一些字符内。如果完全按照这个要求去构造shellcod原创 2021-09-01 19:03:01 · 466 阅读 · 0 评论 -
CTF Blind pwn题型学习笔记
Blind pwn概述如何辨别漏洞类型逻辑漏洞盲打格式化字符串盲打原理阐述例题讲解axb_2019_fmt32栈溢出盲打堆盲打总结概述 所谓Blind pwn,即是在无法获得二进制程序文件的情况下对题目进行漏洞利用。这篇博客主要是将见到过的盲打pwn题做一个总结,大概可以分为以下几类盲打pwn题:逻辑漏洞盲打、格式化字符串盲打、栈溢出盲打、堆盲打。如何辨别漏洞类型 对于盲打题,首先第一步应该是判断属于哪种类型的盲打,判断的步骤也很简单,nc连上后,直接看程序提供的菜单功能。 一般来说,需要逻原创 2021-08-31 22:20:52 · 2042 阅读 · 4 评论 -
AFL (American fuzzy lop) 二进制程序模糊测试工具学习
AFL前言AFL的安装AFL运行界面介绍fuzzing -- 有源码的程序fuzzing -- 无源码的程序总结前言 在学习了一段时间的pwn后,我个人对漏洞挖掘也是充满了极大的兴趣,但是真实环境中的漏洞挖掘和CTF中的pwn题还是有很大区别的。原因在于,CTF中的pwn题代码量少,实现逻辑并不复杂,存在的漏洞也是比较明显的,一般都是通过代码审计就能发现;而在真实环境中,代码量大,实现逻辑复杂,虽然造成漏洞的代码可能和pwn题相差不大,但是在庞大的代码量下,通过代码审计的方式来发现漏洞并不是一个好的方原创 2021-08-14 15:00:05 · 5668 阅读 · 2 评论 -
2021DASCTF实战精英夏令营暨DASCTF July X CBCTF 4th -- WP [pwn]
WP概述EasyHeaprealNoOutputold_thing总结概述 前天又参加了一次激动人心的比赛,好吧,确实只能说是激动人心,毕竟没有物质回报,好的名次和中将名额总是和自己无缘。废话不多说,直接看wp。 所有题目和环境都在buuoj上有复现,这里感谢buuoj在我学习ctf过程中提供的做题环境以及时不时搞几场比赛来激励(打击/(ㄒoㄒ)/~~)我努力学习。EasyHeap 题目是常规的堆题,64位程序,保护全开,漏洞也算明显,当然对strdup函数功能不熟悉的同学可能需要调试后才能原创 2021-08-03 23:29:44 · 1359 阅读 · 4 评论 -
CTF之二进制逆向学习 -- 混淆算法积累
混淆算法积累概述JSFUCK总结概述 最近做逆向题,开始遇到代码混淆相关的知识点,这里做一个纪录,一来防止遗忘,二来供大家学习参考。JSFUCK jsfuck混淆是基于js的原子性,它可以用6个字符来实现js编程,这6个字符是()[]+!。如下代码所示,是alert(1)的混淆代码展示,将下面代码粘贴到控制台即会弹窗1。[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[]原创 2021-07-19 21:49:24 · 958 阅读 · 1 评论 -
BUUCTF crackMe 题解
crackMe程序信息题目分析main函数分析sub_401830关键函数分析动态调试byte_416050求解总结程序信息 这道题目来自于哪个实际比赛,我没有去找,我个人是从buuoj上刷到的,位于re部分第二页,题目只有一分,做出来的人也比较多,看起来应该是个简单的题目。 之所以要写这个wp,是对题目的答案存在一些疑问,网上也有很多wp,我都看了一下,大致都出自于同一个人的手笔O(∩_∩)O。我个人感觉网上的wp分析过程都漏了一步,虽然这样得出的flag可以通过buuoj,但是这是个crack原创 2021-07-12 10:46:00 · 3501 阅读 · 13 评论 -
CTF之web学习记录 -- 网站信息搜集
网站信息搜集概述GitHackDirSearch总结概述 我个人自学web已经有了一段时间了,但总感觉少了些什么,从做题角度上来讲,遇到的web题要么是直接给了源码需要审计的,要么是会给足够的提示,让你知道是考察注入还是文件上传等。那么如果不给源码,不给提示呢,我们面对一个功能众多的网站该如何下手?此时就需要这一章的内容,我愿称其为web学习中灵魂的章节。 接下来我将根据做题的积累,介绍下ctf中常用的一些信息搜集思路和工具。GitHack GitHack 现在的开发人员使用git进行版原创 2021-07-06 20:57:23 · 674 阅读 · 0 评论 -
CTF之web学习记录 -- 命令注入
命令注入概述常见攻击方式使用管道符号escapeshellarg和escapeshellcmd命令执行漏洞修复总结概述 web服务器后端代码有时会调用一些执行系统命令的函数,以常见的php语言为例,使用system/exec/shell_exec/passthru/popen/proc_popen等函数可以执行系统命令。因此一旦我们可以控制这些函数中的参数时,就可以将恶意的系统命令拼接到正常命令中,从而造成命令执行攻击,这就是命令执行漏洞。常见攻击方式使用管道符号 我们以一段简单的php代码为原创 2021-07-04 21:13:46 · 1369 阅读 · 4 评论 -
CTF之web学习记录 -- SSRF
SSRF概述SSRF原理SSRF漏洞修复一道例题总结概述 SSRF(Server-Side Request Forgery)服务器端请求伪造,是一种由攻击者构造请求,服务器端发起请求的安全漏洞。当然之所以要这样曲折,是因为SSRF的目标一般是外网无法访问的内部系统,所以需要用服务器端发送。SSRF原理 SSRF形成的原因在于服务器端提供了从其它服务器应用获取数据的功能且没有对目标地址做过滤和限制。通过该漏洞我们可以攻击内网的服务器,获取相应的资源信息,利用file协议读取内部网络文件等。 如原创 2021-06-29 20:49:13 · 1953 阅读 · 2 评论 -
pwn题堆利用的一些姿势 -- setcontext
setcontext概述setcontext介绍setcontext具体操作setcontext实例总结pwn题堆利用的一些姿势 – malloc_hookpwn题堆利用的一些姿势 – free_hookpwn题堆利用的一些姿势 – IO_FILE概述 在做堆题的时候,经常会遇到保护全开的情况,其中对利用者影响最大的是PIE保护和Full RELRO,NX保护和栈保护对堆利用来说影响都不大,一般利用也不会往这方面靠。开了PIE保护的话代码段的地址会变,需要泄露代码段基地址才能利用存储在bss段上原创 2021-06-27 20:13:06 · 3427 阅读 · 4 评论 -
CTF之二进制逆向分析 -- 密码学知识积累
密码学知识积累概述凯撒密码base64加密总结概述 在ctf比赛中,逆向这块很大一部分都是在考查密码学的知识,其中需要逆向的代码基本都会是一些加解密的操作,因此有必要学习和积累一些常见的密码学知识。当然这里我们并不太需要知道如何使用密码学上的方法去破解加密密文,如果一定要破解的话,也是有工具和对应程序实现的。因此我们要做的就是去熟悉这些密码学的加密方式,并在逆向代码中认出来。凯撒密码 凯撒密码(Caesar),相传为凯撒所创,属于古典密码学中的移位密码。这种加密方式比较简单,就是将字母的对应关系原创 2021-06-23 09:29:01 · 7311 阅读 · 0 评论 -
CTF之web学习记录 -- 文件上传
文件上传概述一句话木马常见攻击手段JS检测绕过攻击总结概述 所谓文件上传漏洞,就是web服务器对上传的文件没有做好检测和过滤,从而使得恶意用户可以上传脚本程序到服务器,进而获得服务器权限。这个恶意脚本文件,又被称为WebShell,因此也可以将WebShell脚本作为一种网页后门,一般通过上传的脚本文件,我们可以查看服务器的目录结构和文件,亦或者执行系统命令等。一句话木马 这里先介绍web服务器没有对上传的文件进行任何检测的情况下,我们应该如何攻击。 利用一句话木马,即上传一句话木马脚本文件原创 2021-06-21 12:25:08 · 1420 阅读 · 3 评论 -
2021 DASCTF X BUUOJ 五月大联动WP
DASCTF X BUUOJ 五月大联动WP概述pwnDASCTF_X_BUUOJ_2021_ticketDASCTF_X_BUUOJ_2021_cardre总结概述 这个五月我又参加了一次不留痕迹的ctf比赛,之所以叫不留痕迹,是因为总是拿不到好的名次????,比赛结束前1小时还能苟进前10,不过后面还是被反超了。不好在安慰自己,新手嘛,刚刚上路,稳扎稳打,持续努力,定有收获。 这个比赛完整环境可以在buuoj上找到,简单分析一下题目分布情况,pwn 2道,re 2道,web 2道,crypto原创 2021-05-30 19:36:03 · 1786 阅读 · 7 评论 -
CTF pwn题之虚拟机题型详解
虚拟机题型详解概述如何分析一个例子总结概述 随着对pwn题的学习,慢慢开始接触VM虚拟机的pwn题了,刚开始做这种类型的题时会发现代码量比较大,略显复杂,复杂的部分主要是在用程序实现虚拟机指令那里。 其实这种题做法和普通pwn类似,也是寻找漏洞,复杂的地方在于需要我们去分析出虚拟机实现的指令,然后用这些指令操作进行漏洞利用。如何分析 接下来介绍下如何分析,对于VM类型的pwn题,复杂的地方在于分析出该VM对应实现的指令,那么如何分析需要一定章法。这里需要简单知晓一些计算机组成原理和汇编语言的原创 2021-05-24 16:44:50 · 1536 阅读 · 0 评论 -
OGeek_2019_Final OVM题解
WP程序分析程序主逻辑分析虚拟机指令分析利用思路exp总结程序分析 本题目是一道典型的虚拟机题目,通过这道题目,我们可以学习一下VM pwn题的分析技巧和利用思路。 该题目程序和远程环境可以在buuoj上找到,下面老规矩先检查下程序信息,64位小端程序,没有开启栈保护。 做虚拟机的pwn题,我们可以分两大步骤进行,首先先分析一下这个程序是如何实现虚拟机功能的,也就是程序自身的大逻辑,然后我们再详细分析程序虚拟出来的指令,分析指令的过程可能会比较耗时,需要耐心。程序主逻辑分析 我们首先来原创 2021-05-24 16:36:05 · 779 阅读 · 0 评论 -
CTF之web学习记录 -- SQL注入检测绕过
SQL注入检测绕过概述大小写绕过双写绕过编码绕过内联注释绕过总结概述 在学习了一些基本的sql注入知识以及注入技巧后,本篇博客将会总结一些常见的sql注入检测绕过方法。大小写绕过 大小写绕过很好理解,后端程序会过滤掉一些关键词,比如:select/union/and,此时就无法达到注入的效果。想要绕过这种检测,只需要大写某些字母即可,比如:selEct/UniOn/And,之所以可以这样绕过,一是因为后端的检测逻辑不够完善,二是mysql并不区分大小写。双写绕过 双写绕过在ctf比赛中十分原创 2021-05-19 22:01:34 · 1013 阅读 · 1 评论 -
CTF之web学习记录 -- SQL注入进阶
SQL注入进阶概述时间注入攻击堆叠查询注入攻击二次注入攻击宽字节注入攻击cookie注入攻击base64注入攻击XFF注入攻击总结概述 这一部分的内容是sql注入知识的进阶部分,引入了更多的注入技巧。时间注入攻击 时间注入攻击的场景同样也是服务器并不返回查询语句的信息,这和boolean注入攻击类似,boolean注入通过true或false来进行数据库信息猜测。时间注入攻击通过利用sleep()或benchmark()等函数让数据库操作时间变长,以此来判断语句是否成功执行。# 判断数据库名长原创 2021-05-19 16:33:10 · 616 阅读 · 0 评论 -
CTF之web学习记录 -- SQL注入基础
SQL注入概述基本原理MySql注入基本知识information_schemasql注入常用知识总结概述 SQL注入就是指web应用程序对用户输入数据的合法性没有判断,没有进行有效的字符过滤,前端传入后端的参数是攻击者可控的,并且参数被带入数据库查询,攻击者可以通过构造不同的SQL语句来实现对数据库的任意操作。基本原理 所谓sql注入的基本原理,也就是说sql注入是怎么发生的,我们以下面php代码中构造sql查询语句的方式为例。<?php$id = $_GET['id'];$que原创 2021-05-18 19:29:42 · 774 阅读 · 0 评论 -
2021第十四届全国大学生信息安全竞赛WP(CISCN)-- pwn部分
CISCN_2021_WP概述ciscn_2021_lonelywolf总结概述 作为学习不到一年的练习生,今年第一次参加国赛,本以为题目会比较温柔,但是最后只做出了一道pwn题,本来还有两道pwn题是有机会的,但还是缺少一些知识或者技巧吧,没做出来,然后就结束了。本次国赛pwn题出了一道arm 64位结构的,其余都是正常的linux下pwn题,使用libc-2.27.so,有一道考了沙箱机制。ciscn_2021_lonelywolf ciscn_2021_lonelywolf libc-原创 2021-05-17 09:44:03 · 10772 阅读 · 21 评论 -
CTF pwn -- ARM架构的pwn题详解
arm架构的pwn题详解概述环境搭建使用QEMU使用gdb-multiarchARM架构基本知识一道例题参考博客总结概述 ARM架构过去称作进阶精简指令集机器(Advanced RISC Machine,更早称作:Acorn RISC Machine),是一个32位精简指令集(RISC)处理器架构,其广泛地使用在许多嵌入式系统设计。由于节能的特点,ARM处理器非常适用于移动通讯领域,符合其主要设计目标为低耗电的特性。因此我们常用的手机、平板等移动设备都是采用ARM体系架构的,因此CTF中不可避免也会出原创 2021-05-14 15:23:28 · 2925 阅读 · 8 评论 -
pwn -- 沙盒机制详解
沙盒机制详解概述开启沙盒的两种方式prctl函数调用seccomp库函数使用seccomp-tools识别沙盒两道例题pwnable_asm参考博客总结概述 沙盒机制也就是我们常说的沙箱,英文名sandbox,是计算机领域的虚拟技术,常见于安全方向。一般说来,我们会将不受信任的软件放在沙箱中运行,一旦该软件有恶意行为,则禁止该程序的进一步运行,不会对真实系统造成任何危害。 在ctf比赛中,pwn题中的沙盒一般都会限制execve的系统调用,这样一来one_gadget和system调用都不好使,只原创 2021-05-13 12:42:19 · 6485 阅读 · 1 评论 -
2021年津门杯ctf线上赛记录(WICCTF)
津门杯ctf线上赛概述pwn题easypwnpwnCTFM总结概述 本篇博客记录下自己的第一次ctf比赛经历,其实不完全是第一次,之前也参加过其他比赛,但只能做个签到就走了,这次不一样了,好歹做出了一道pwn题,有一道本来是有机会的,搞错libc了,线上没拿到flag,不过线上复现了下,感觉还行。因此特写下此篇博文,记录自己的一血。????pwn题 我个人现在只会做做pwn题,后面打算也看看web,提升一下综合实力,这里介绍下比赛中的两道pwn题,和官方wp不一样,这里是我自己的思路。easy原创 2021-05-12 20:06:36 · 1996 阅读 · 0 评论 -
pwn题堆利用的一些姿势 -- IO_FILE
IO_FILE概述IO_FILE结构介绍利用IO_FILE进行leakFSOP总结概述 这是pwn题堆利用系列的第三篇文章,本篇文章主要讲解一下IO_FILE结构在pwn题中的利用。一般来说,想到使用IO_FILE结构,是因为pwn题中没有可以用来leak的函数。IO_FILE结构介绍 FILE 在 Linux 系统的标准 IO 库中是用于描述文件的结构,称为文件流。 FILE 结构在程序执行 fopen 等函数时会进行创建,并分配在堆中,然后以链表的形式串联起来,但系统一开始创建的三个文件st原创 2021-05-11 20:11:06 · 5304 阅读 · 5 评论 -
CTF之web学习记录 -- 文件包含
文件包含概述常见文件包含函数和原理本地文件包含远程文件包含总结概述 后端编程人员一般会把重复使用的函数写到单个文件中,需要使用时再直接调用此文件即可,因此该过程也就被称为文件包含。文件包含的存在使得开发变得更加灵活和方便,但同时也带了安全问题,导致客户端可以远程调用文件,造成文件包含漏洞。这个漏洞在php中十分常见,其他语言也有。常见文件包含函数和原理# phpinclude() // 执行到include时才包含文件,找不到文件产生警告,脚本继续执行require() // 程序运行就原创 2021-05-11 11:08:12 · 17373 阅读 · 0 评论 -
OWASP Top 10 2017 学习笔记
学习笔记概述关于OWASP和Top 10A1 -- 注入A2 -- 失效的身份认证A3 -- 敏感数据泄露A4 -- XML外部实体(XXE)A5 -- 失效的访问控制A6 -- 安全配置错误A7 -- 跨站脚本(XSS)A8 -- 不安全的反序列化A9 -- 使用含有已知漏洞的组件A10 -- 不足的日志记录和监控总结概述 本博客是基于最新版owasp top 10,也就是2017年发布的版本,虽然已经又过了四年,但好像没有看到更新版本的公布。这篇博文将会记录下owasp top 10中的要点,以及原创 2021-05-10 20:48:43 · 257 阅读 · 1 评论 -
SQL注入的一般过程
SQL注入的一般过程概述SQL注入一道例题总结概述 SQL注入是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。SQL注入大致可以分为两类:数字型注入和字符型注入。SQL注入 这里介绍下SQL注入的基本流程,需要明确的是在实际注入中,我们都是无法看到具体的后端代码的,也就是无法知晓具体的SQL拼接原创 2021-05-07 19:37:39 · 12081 阅读 · 1 评论 -
DVWA的部署和教程
DVWA的部署概述本地部署DVWA部署DVWA的基本环境下载DVWA配置MySql数据库配置DVWA总结概述 DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用,旨在为安全专业人员测试自己的专业技能和工具提供合法的环境,帮助web开发者更好的理解web应用安全防范的过程。本地部署DVWA部署DVWA的基本环境 dvwa本质也是一个web应用服务,所以可以使用下面的web应用服务组合来进行环境部署 – Apach原创 2021-05-04 19:32:00 · 5957 阅读 · 0 评论 -
CTF之web学习记录 -- 环境和工具篇
工具篇引言本地web环境搭建安装apache安装PHP引言 作为一名刚入坑二进制不久的新人选手,发现ctf的道路任重而道远,恍惚间又看到一些关于二进制求生之路上的劝退语录,于是为了提升综合素养,开始学习web方向。这里是我从零到一的学习记录,写博客的好处一来是夯实基础,巩固复习,二来是分享经验,希望新入坑的读者可以少走弯路。本地web环境搭建安装apache 这里介绍Ubuntu下apache环境的搭建以及一些常用的终端操作命令。# 安装apache2sudo apt install ap原创 2021-05-03 10:00:33 · 2403 阅读 · 2 评论 -
pwn -- glibc-2.29漏洞利用学习
glibc-2.29概述Tcache Stashing Unlink Attack任意位置写入较大值总结概述 这里记录下版本为libc-2.29.so的漏洞利用方式,一是防止遗忘,二是供大家学习。Tcache Stashing Unlink Attack 攻击原理和细节代码我就不分析了,着重记录下攻击方式和效果,这里利用tcache stashing unlink attack可以实现两种攻击效果: 1、任意位置写入较大值 2、任意地址chunk分配任意位置写入较大值 该漏洞发生在原创 2021-04-30 12:25:03 · 595 阅读 · 0 评论 -
pwn题堆利用的一些姿势 -- free_hook
free_hook概述初级必备姿势常规搭配姿势按需进阶姿势总结pwn题堆利用的一些姿势 – malloc_hook概述 在做堆题的时候,经常会遇到保护全开的情况,其中对利用者影响最大的是PIE保护和Full RELRO,NX保护和栈保护对堆利用来说影响都不大,一般利用也不会往这方面靠。开了PIE保护的话代码段的地址会变,需要泄露代码段基地址才能利用存储在bss段上的堆指针;开了Full RELRO的话,则意味着我们无法修改got表,导致无法修改其它函数got表指向system,进一步获取到shell原创 2021-04-16 18:47:36 · 4890 阅读 · 4 评论 -
pwn题堆利用的一些姿势 -- malloc_hook
在做堆题的时候,经常会遇到保护全开的情况,其中对利用者影响最大的是PIE保护和Full RELRO,NX保护和栈保护对堆利用来说影响都不大,一般利用也不会往这方面靠。开了PIE保护的话代码段的地址会变,需要泄露代码段基地址才能利用存储在bss段上的堆指针;开了Full RELRO的话,则意味着我们无法修改got表,导致无法修改其它函数got表指向system,进一步获取到shell。因此也就有了我这一系列文章的目的,在got表无法被修改时,我们往往利用的就是下面的一些hook+one原创 2021-04-12 09:16:28 · 4332 阅读 · 0 评论 -
CTF pwn题堆入门 -- Unsorted bin
Unsorted bin概述攻击方式泄露libc地址总结概述 Unsorted bin也是堆题中常见的,当一个堆块被释放时,且该堆块大小不属于fast bin(libc-2.26之后要填满tcache),那么在进入small bin和large bin之前,都是先加入到unsorted bin的。之后当我们再次分配内存到unsorted bin上寻找时,如果申请的内存堆块小于寻找的unsorted bin,那么会将该内存块切割后返回给用户,剩下的仍然保存在unsorted bin上;如果申请的内存堆块原创 2021-04-08 10:43:40 · 3257 阅读 · 0 评论 -
CTF pwn题堆入门 -- Fast bin
这里写目录标题概述攻击方式实现任意地址分配fast bin poisoninghouse of spirit总结概述 Fast bin是堆利用中最常遇见的情况,常见于libc2.23版本的pwn题中,在那个版本中还没有Tcache机制,在那个版本中漏洞利用还很轻松(????)。 这里简单总结一下fast bin的性质,64位机器下fast bin大小为0x20 – 0x80字节,每个bin链表之间以0x10字节递增;32位机器下为0x10 – 0x40,每个bin链表之间以0x8字节递增(上面的大原创 2021-04-07 23:50:28 · 2458 阅读 · 0 评论 -
CTF pwn题堆入门 -- Large bin
Large bin概述攻击方式分配堆到目的地址house of force总结概述 large bin采用双链表结构,libc-2.23版本下64位机器上,最小为0x400(1024字节),里面的chunk从头结点的fd指针开始,按大小顺序排列。不同于fast bin, small bin, unsorted bin的结构,当属于large bin的chunk被释放时,chunk中还会有fd_nextsize和bk_nextsize指针,分别指向前后第一个与本身chunk大小不同的chunk。当然也就原创 2021-04-07 10:13:03 · 1861 阅读 · 0 评论