自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 TA的加签和验签

TA加签和验签过程

2023-12-06 11:17:43 489

原创 编写自己的CA和TA与逆向

TA的全称是Trust Application, 即可信任应用程序。CA的全称是Client Applicant, 即客户端应用程序。TA运行在OP-TEE的用户空间, CA运行在REE侧。CA执行时代入特定的UUID和命令ID参数就能实现请求特定TA执行特定操作的需求, 并将执行结果返回给CA。通过CA对TA的调用可实现在REE侧对安全设备和安全资源的操作。普通用户无法知道TA的具体实现, 例如操作使用了什么算法、 操作了哪些资源、 获取了哪些数据等, 这也就确保了相关资源和数据的安全。

2023-11-23 16:04:10 466

原创 2.op-tee启动过程

其启动顺序就是:BL1 -> BL2 -> BL31(包括 PSCI 和 OPTEED) -> OPTEE -> BL33。具体内容参考笔记:https://note.youdao.com/s/AM22Gqup。

2023-11-14 11:34:59 232

原创 记录学习TEE(1)

TEEFuzz:https://www.sciencedirect.com/science/article/abs/pii/S0167739X23000857(不开源)官方文档:https://optee.readthedocs.io/en/latest/building/gits/build.html。具体如:https://note.youdao.com/s/OeUXYhZl。

2023-11-13 09:36:11 133

原创 我的二进制漏洞挖掘学习路线

漏洞挖掘也分好多方向:浏览器漏挖,虚拟化,iot,车联网,应用安全等。而且也要区分一下平台,Linux,Android,Windows,还有一些其他的系统。在基础知识拿捏以后,Windows下如OD,windbg,x64dbg。IDA,GDB要会并联调。然后需要了解一下漏洞的知识,漏洞利用的知识。可以从复现漏洞,CTF来学习,学习完之后就可以通过审计源码或者反汇编二进制程序来挖掘。然后就是练就行了,多关注一下最新安全消息,安全漏洞。

2023-03-18 14:06:32 3563 4

原创 AFLGO插桩代码分析记录

首先是afl-clang-fast.c文件里面大部分都是编译的参数,就不详细讲了,在main函数体里面可以看到主要是这三个函数```cfind_obj(argv[0]); edit_params(argc, argv); execvp(cc_params[0], (char**)cc_params);//execvp函数的第一个参数是要执行的文件名,第二个参数是参数列表。execvp(cc_params[0], (char**)cc_params);```其中:edit_params..

2023-03-10 18:07:35 474

原创 定向模糊测试论文列表

定向模糊测试研究论文

2022-06-17 14:39:11 415 2

原创 pwn入门小技巧

目前我所遇到的一些pwn的做题技巧我也是偶尔玩玩ctf,所以也不会很难的,所以这篇主要是帮助刚开始学习的人学习吧首先知识点包括:栈,堆,整数溢出,格式化字符串目前ctf的题越来越偏向于实际,有的会使用刚刚爆出来的CVE漏洞的,所以不能只局限于glibc所以可以大体分为两类把:libc,kernel栈利用:有ret2libc,ret2shellcode,ret2text,ropchain,ret2syscall,brop,srop等等,当然有时候还会有seccomp的只能使用ORW系统调用堆利用:

2022-05-24 11:42:01 3113

原创 buuctf ACTF_2019_message(tcache bin dup / fastbin dup)

有些图片显示不出来,我懒的在复制粘贴了,可以直接去我笔记里面看网上的这道题的,大部分的exp都是写的16.04,使用的fastbin double free,但是在buuctf上根本打不通,因为人家都要求了是18.04,,所以这里写了两个版本(均可以打通)buuctf ACTF_2019_message安全检查:FULL RELRO(got表不可写),GS,NX都开了菜单题(堆的)增加函数:判断当前堆指针是否为空,为空就创建删除函数:一是没有判断该地方是否有值,而是没有将堆指针置空,可能出

2022-04-19 14:36:07 851

原创 ret2libc-泄露和不需要泄露

ciscn_2019_c_1 —需要泄露got题目可在buuctf下载安全检查,发现只开了NX保护(DEP)执行程序会发现,程序第二次原模原样输出了((这种菜单题,我还以为是堆))IDA查看反汇编代码加密函数其中x在bss段定义,一直在增加,所以会导致上面的第二次执行的时候长度>s,从而不执行加密那块,这可以用来泄露地址也就是后面会变的只有比上一次输入长的部分操作如下图由于get可以一直输入,达到一定长度报段错误,这应该是说明覆盖到返回地址了,所以猜想应该是只要覆盖了返回地

2022-04-18 15:28:28 294

原创 linkctf_2018.7_babypie

linkctf_2018.7_babypie检查安全保护,64位,保护全开IDA:并且存在后门,,但是地址都随机化了,不能够直接填写地址,需要通过与固定函数的偏移可以看到把rbp泄露出来了,同时前面一个地址,不知道是不是canary(按理说会放在ebp-8的位置,也就是前面这个,但是canary一般是以00结尾的,这个没有00的原因是,不能写入那么多字节,由于’\x00’被覆盖掉了,如果不覆盖掉的话就会截断,后面的就不会打印出来了)现在要做的就是要把canary如何打印出来,或者是绕过,或者是劫持_

2022-04-18 15:16:14 890

原创 CVE-2018-8120漏洞复现

漏洞原理在函数SetImeInfoEx中对第一个参数偏移0x14位置并没有做判断,从而可以出现异常访问,同时这个参数还是个内核对象_GetProcessWindowStation(0),如果0x14位置不可访问的话就很容易蓝屏,根据前面学的,如果将该地址映射到0页,那0地址就不会报错,然后就可以执行shellcode了漏洞描述部分版本Windows系统win32k.sys组件的NtUserSetImeInfoEx()系统服务函数内部未验证内核对象中的空指针对象,普通应用程序可利用该空指针漏洞以内核权限

2022-03-24 19:24:22 860

原创 CVE-2021-33742 Internet Explorer MSHTML堆越界写漏洞复现

漏洞简介CVE-2021-33742是存在于Internet Explorer的Trident渲染引擎(mshtml.dll)中的一个堆越界写漏洞。这个漏洞是由于通过JavaScript使用DOM innerHTML属性对内部html元素设置内容(包含文本字符串)时触发的。通过innerHTML属性修改标签之间的内容时,会造成IE生成的DOM树/DOM流的结构发生改变,IE会调用CSpliceTreeEngine类的相关函数对IE的DOM树/DOM流的结构进行调整。当调用CSpliceTreeEngine

2022-03-24 15:41:07 5845

原创 符号执行辅助器symcc_fuzzing_helper源码分析

Symcc_AFL原理main.rssymcc.rs这个辅助器使用rust语言写的,主要是有main.rs,symcc.rs然后这个整体的项目搭建,需要添加包,还有一些依赖详细参考cargo官方指南这个我去年看的时候还挺多的,今年不知道为啥就剩四章节了.,里面能自己改能在线运行还挺好的当时.在找到其他比较好的教程再添加吧一些用到的API可以直接去Rust官方手册原理大致原理就是通过符号执行产生的测试用例来提供给fuzzer,然后fuzzer继续变异执行,在没有新路径的情况下又将fuzzer产生的一

2022-03-23 21:04:45 4453

原创 Symcc源码分析

Symcc前言目录cmakelist.txt前端插桩代码pass.cppruntime.cppsymboize.h后端代码shadow.hLibcWrappers.cppconfig,cpp前言网上基本没有Symcc源码的介绍,阅读起来还挺难的,所以这里就做个记录由于涉及到cmake语法,LLVM的东西,最近刚学也是一点点搜集的,可能很多东西描述的不准确,编译器一般分为三部分:前端(Frontend)-- 优化器(Optimizer)-- 后端(Backend)LLVM也是类似。LLVM编译一个源

2022-03-22 22:50:25 4808 1

原创 模糊测试+符号执行等漏洞挖掘工具安装使用

漏洞挖掘工具符号执行KLEEQSYMdriller+AFLsymcc+AFL模糊测试AFLAFLGOAFL++honggfuzz隔离了一周,解封了随便写点东西吧符号执行KLEE里面是我之前安装时候的步骤还有碰到的一些问题docker版本https://note.youdao.com/s/IOq175mH本地安装https://note.youdao.com/s/dsuQrN8hQSYMhttps://note.youdao.com/s/9Hm7tdfgdriller+AFLhttps:/

2022-03-21 18:27:45 2206

原创 CVE-2020-0976永恒之黑漏洞复现

漏洞原理SMB远程代码执行漏洞SMB 3.1.1协议中处理压缩消息时,对其中数据没有经过安全检查,直接使用会引发内存破坏漏洞,可能被攻击者利用远程执行任意代码。攻击者利用该漏洞无须权限即可实现远程代码执行,受黑客攻击的目标系统只需开机在线即可能被入侵。影响版本Windows 10 1903 (19H1)、Windows 10 1909、 Windows Server 19H1均为潜在攻击目标漏洞所需工具漏洞检测工具:http://dl.qianxin.com/skylar6/CVE-2020-0

2022-03-13 15:16:36 4318 1

原创 AFLGO插桩代码分析记录

首先是afl-clang-fast.c文件里面大部分都是编译的参数,就不详细讲了,在main函数体里面可以看到主要是这三个函数find_obj(argv[0]); edit_params(argc, argv); execvp(cc_params[0], (char**)cc_params);//execvp函数的第一个参数是要执行的文件名,第二个参数是参数列表。execvp(cc_params[0], (char**)cc_params);edit_params其中:edit_par

2022-03-12 17:09:26 1399 1

原创 HEVD第八部分-UAF释放重引用

原理UAF的原理就是释放掉一个对象之后,但是并没有将其置为空,所以导致成为了悬挂指针,然后在使用就会出现一些奇怪的事情:有以下几种情况:内存块被释放后,其对应的指针被设置为 NULL , 然后再次使用,自然程序会崩溃。内存块被释放后,其对应的指针没有被设置为 NULL ,然后在它下一次被使用之前,没有代码对这块内存块进行修改,那么程序很有可能可以正常运转。内存块被释放后,其对应的指针没有被设置为NULL,但是在它下一次使用之前,有代码对这块内存进行了修改,那么当程序再次使用这块内存时,就很有可

2022-03-11 15:06:21 303

原创 HEVD-第七部分-未初始化的堆变量

未初始化的堆变量漏洞分析控制码代码测试利用思路漏洞分析IDA打开分析分配的还是在EBP+*,位置上判断是否分配成功,成功就跳转到下面打印出一些信息然后判断UserValue与0BAD0B0B0h是否相等,相等的话就给元素赋值,这里可以看出结构体有至少三个成员,value,callback,buf数组不相等的话,还是会打印出一些信息,并且调用函数(),分析着有没有感觉跟第五部分的空指针引用很像,但是不一样的是空指针引用那个漏洞版本没有进行判断就直接调用callback了,而这个判断了那么应

2022-03-10 12:42:58 356

原创 SymQemu安装

首先是安装symcc$ git clone https://github.com/eurecom-s3/symcc.git$ cd symcc$ git submodule update --init$ mkdir build$ cd build$ cmake -G Ninja -DQSYM_BACKEND=ON ..$ ninja有这两个代表安装成功了然后安装qemu依赖sudo apt install qemu看网上说的增加源,然后就试试了,发现还是不行(其实不用修改源)s

2022-03-09 17:49:51 669

原创 AFLGO距离生成代码分析记录

首先查看gen_distance_fast.py的main函数第一步是生成CG然后通过:calculating_distances计算距离第一次调用exec_distance_prog生成CG距离,第二次生成CFG距离exec_distance_prog是通过python_only的值来选择是调用C++文件还是Python文件然后查看distance_calculator下面的main.cpp前面大段程序就是加载图详细信息主要看下面cg那块判断然后看cg距离计算,先读入节点,然后计

2022-03-09 10:36:10 2756

原创 HEVD-第六部分-未初始化的栈变量

未初始化的栈变量分析测试一些过程重新设置断点分析首先查看漏洞源码NTSTATUSTriggerUninitializedMemoryStack( _In_ PVOID UserBuffer){ ULONG UserValue = 0; ULONG MagicValue = 0xBAD0B0B0; NTSTATUS Status = STATUS_SUCCESS;#ifdef SECURE // // Secure Note: This is s

2022-03-08 20:01:31 605

原创 HEVD3.0-第五部分-空指针解引用

前言本篇有上一小节的知识就很简单了,因为也需要用到申请NULL页面当指针为NULL时,存在空指针解引用漏洞,并被程序指向有效的内存区域,所以只要能控制NULL页面,然后在该地方申请内存,将shellcode放进去就行了分析用IDA打开HEVD.sys文件进行分析然后打印一些东西判断值是否等于0xBAD0B0B0相等就进行打印和赋值的一些操作漏洞点在第二个红框,在指针清空了之后,如果走了这个分支之后没有判断就直接调用了,这里面注意EDI的值为0也就是,call ds:[4],将这个位置放

2022-03-07 12:03:16 465

原创 HEVD-第四部分-池溢出

前言文章参考:https://rootkits.xyz/blog/2017/11/kernel-pool-overflow/其中池的概念看那个论文也可以,优快云上也有人翻译了:https://blog.youkuaiyun.com/qq_38025365/article/details/106259634开始操作查看漏洞点通过ExAllocatePoolWithTag函数申请内存然后可以通过查看源码(也可以通过IDA):IOCTL:0x22200f(根据code803算的)测试程序然后编写程序测试:

2022-03-06 20:01:51 346

原创 HEVD-第三部分-任意地址写

驱动分析首先仍然是打开IDA分析,任意写函数首先计算IO_CODE#define HEVD_IOCTL_ARBITRARY_WRITE IOCTL(0x802)hex((0x00000022 << 16) | (0x00000000 << 14) | (0x802 << 2) | 0x00000003) = 0x22200b由第二部分已经知道了LINK_NAME = L\DosDevices\H

2022-03-04 21:02:55 342

原创 APC_dll注入

主要是以下五步//注入器//1.要注入到进程中首先要拿到进程ID//2.获取到LoadLibrary地址//3.在目标程序的体内开辟一块内存,用来写入dll地址//4.遍历线程-随便选一个目标进程的线程获取句柄//5.插入APC,把LoadLibrary作为APC的回调参数,然后把目标进程的dll地址作为参数#include<stdio.h>#include<stdlib.h>#include<Windows.h>#include<TlHelp3

2022-03-03 20:21:45 533

原创 线程的一些操作-学习记录

内核中:线程遍历#include<ntddk.h>//正常的驱动需要提供一个卸载函数VOID DriverUnload(PDRIVER_OBJECT pDriver) { UNREFERENCED_PARAMETER(pDriver); DbgPrint("unload success!!\n");}NTSTATUS EnumThreadFunc(DWORD_PTR pEprocess) { PLIST_ENTRY HeadNode = (PLIST_ENTRY)(pEpro

2022-03-03 16:17:08 219

原创 SSDT_HOOK

分别从静态,动态两种方法来hook静态是直接根据openProcess的调用号0xbe动态是防止地址发生改变或者其他,来动态函数索引进而HOOK的#include<ntifs.h>#include<ntimage.h> //提供 PE结构PULONG g_PageMapMemory = NULL;typedef struct _SSDTItem { PULONG FunAddressTable; ULONG Pknum; ULONG uIndexCount;

2022-03-03 14:24:10 299

原创 EPROCESS+KPCR+ETHREAD部分介绍-学习记录

**目前32位上结构体已经延展到了0x2bc **_EPROCESSnt!_EPROCESS+0x000 Pcb : _KPROCESS 详细见下面+0x098 ProcessLock : _EX_PUSH_LOCK 进程锁,和KPEOCESS不一样,只锁自己的结构+0x0a0 CreateTime : _LARGE_INTEGER 进程创建时间+0x0a8 ExitTime : _LARGE_INTEGER 进程退出时间+0

2022-03-02 12:11:13 1191

原创 HEVD第二部分缓冲区溢出学习(HEVD-3.0)

HEVD3.0学习

2022-03-01 15:39:15 2230

原创 (unlink) HITCON CTF 2016 : Sleepy Holder

今天仍然是复习unlink的原理和利用过程这个跟Secret Holder类似的,只不过huge secret一旦创建就无法删除了和修改了(我之前写payload时候忘记了,还delete(3)。。。)安全检查之后拖到IDA里面:菜单题free功能好像没什么毛病修改功能好像也没什么问题(难道问题在分配里面)看到分配功能,也就是三个秘密分配,也没有什么分配函数读取越界溢出,或者off-by-null漏洞然后大致只得到了,分配通过flag的位置是否为1,来判断的并且其相对的布局分别是0x602

2022-01-20 16:21:36 381

原创 unlink zctf 2016 note3

这个跟note2很相似,仍然是一个unlink问题,,,不同的是没法打印泄露了详情请参考,note2查看检查在IDA里面看,发现其有增加,修改,删除,打印的功能其中增加的功能:发现0x6020c0地方存放的是当前堆ptr,0x6020c0[i+8]存放的是其大小也就是其布局是这样的:cur_ptr | ptr0 | ptr1 | … | ptr6 | cur_size | size_ptr0 | size_ptr…| size_ptr6在输入size有个函数sub4009b9()中的sub

2022-01-19 16:14:09 2447

原创 unlink 2016 zctf note2

题目可在buuctf下载这章还是unlink的复习拖到IDA里面可以看到,开头让输入名字,地址(其实没卵用)然后看下面的菜单分别是新增,打印,编辑,释放在新增功能中size是无符号数,所以当size为0的时候,0-1之后为无穷大的数,也就是能向堆中写入无穷大的数0xffff…,根据glibc规定会分配0X20个字节,但是读取的时候不受限制,会产生堆溢出并且最多四个堆块同时我们可以看出ptr是存放content的地址(0x602120),id存放在0x602160,size存放在0x602140

2022-01-18 11:17:58 188

原创 unlink 2014 HITCON stkof

题目可以从buuctf下载参考链接有两篇:一篇使我们的靶场里面的内网服务器的文章链接就不贴了:他所使用的原理是通过atoi函数来达到获取shell的,另外一篇通过free-》system https://blog.youkuaiyun.com/Pwnpanda/article/details/81369367首先拿到题目,随便输入发现没有任何提示,,,,在IDA里面仔细看了看,大概看出来1.用来分配2用来写入内容3.用来free4.好像没什么用而且发现在输入的时候是没有验证大小的,可以随便输入所以就可以

2022-01-17 11:20:41 2586

原创 堆中的off-by-one :ASIS CTF 2016:b00ks

ASIS CTF 2016:b00ks最近在练习pwn题,主要看的是ctf竞赛权威指南这本书,感觉这个题太巧妙了,记录一下首先拿到文件第一步查看检查:然后拿到IDA里面看:在sub_b6d()函数中使用了一个自己写的read函数(这个函数存在一个off-by-one漏洞)并且可以看到这里name存在off_202018分析知道0ff_202010存的是book结构体二者相差20个偏移打印就是规中规矩的了,然后看修改作者姓名的,发现仍然是sub_b6d函数,但是在修改的时候就只能溢出一

2022-01-12 16:11:58 2500

原创 Android逆向-签名认证绕过

Android逆向-签名认证绕过0x01 对APP重新打包并绕过签名验证1.插桩的手段定位签名验证的关键点⚫ 首先尝试搜索字符串“signatures”,来查找和签名有关的函数或者方法。然后通过插桩的方式在含有字符串“signatures”的函数中插入Log日志信息,然后使用DDMS对app的运行进行监控,通过弹出Log日志的位置,来找出 app 出错的时执行到了哪个函数,以此来定位到签名验证的关键函数。⚫ 对上面含有“signatures”字符串的函数进行插桩,在这里我们插入Log日志信息,如下

2021-09-02 11:17:21 2300

原创 apk逆向中的androguard使用

androguard 3.x版本使用和2的版本不同 VMAnalysis替换为了==>Analysis首先需要导入包from androguard.misc import AnalyzeAPK apkfile = 'D:\\FDex2\\base(1).apk' a,d,dx = AnalyzeAPK(apkfile)#得到的三个对象是a一个APK对象、d一个DalvikVMFormat对象数组和dx一个Analysis对象。 print("授权:",a.get_permissio

2021-05-30 15:42:12 391

空空如也

空空如也

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

TA关注的人

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