自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 问答 (2)
  • 收藏
  • 关注

原创 NKCTF2024-Eznative

看到上层函数,其实这个sub_27F2d4是有符号的,我这里写wp的时候没有导入全部,名字叫做dialog,那么写过安卓开发的就知道这玩意就是弹窗了。然后在之前给出的GitHub项目中,发现其实他的enc出来的结果就是base64的,所以我们直接使用库就可以解密了。在old中也是有符号的,很明显的base。这里有个巨jb坑的地方,我点了n次一直不触发,后面来脾气了,长按一下,结果。短按是用来触发aaa的,当时hook过aaa,发现短按确实能触发。触发了,tnnd,后面发现应该是这个aaa与bbb的问题。

2024-03-25 00:39:29 555

原创 Frida-Hook-Native层操作大全

可以看到在onLeave中有一个参数retval,这个retval,就是我们hook上的程序的返回值,我们可以使用retval.replace(val)来修改返回值。但是我们需要注意的是strcmp可能不止调用一次,因此我们需要判断strcmp的第一个参数是否为0我们才进行操作,不然hook可能会一直循环输出。程序在cmpstr中使用了strcmp函数,那么我们只需要拿到strcmp函数的传入参数就可以知道程序的正确输入了。获取了strcmp的地址就可以使用之前给的模板进行Hook了。

2024-03-07 21:19:57 1853 1

原创 Frida-Hook-Java层操作大全

让我们从非常基础的知识开始。什么是钩子?Hook是指拦截和修改应用程序或Android系统中函数或方法行为的过程。例如,我们可以钩取我们应用程序中的一个方法,并通过插入我们自己的实现来改变其功能。现在,让我们尝试在一个应用程序中钩取一个方法。我们将使用JavaScript API 来完成这个任务,但值得注意的是,Frida也支持Python。

2024-03-04 01:25:50 708

原创 [Android]Frida-hook环境配置

它帮助你查看其他程序或应用内部发生的事情,即使你没有原始代码也能做到。Frida允许你识别程序或应用中的特定函数或方法,并拦截它们。当这些函数被调用时,Frida可以对它们接收的数据进行更改,或者查看它们的执行情况。例如,你可以查看变量的值,了解程序的执行流程,甚至在代码被执行时修改数据或代码。这里我选择使用的是Android Studio中的x86模拟器,所以我将下载的是x86的版本。如果您使用的是Arm64的机器,请使用Arm64的版本。如果您想要检索特定应用程序的包名称,您可以使用。

2024-02-17 02:04:12 699

原创 [BeginCTF]真龙之力

在AndroidKiller中将Mainfest文件修改成android:testOnly:"flase"或者直接删除这一句,然后编译签名安装就可以了。具体逻辑就是通过填充00然后置换之后与密文进行比较,正确则输出”YOU GET IT“不正确则输出交换的结果。可以发现android:testOnly:“true”,也就是导致我们无法安装的主要原因。可以发现算法只是涉及到了密文的位置置换,不涉及任何的加密等。出现了安装失败的标签,开发者不允许测试。使用-t参数直接测试安装。两个按钮的监听事件,

2024-02-08 20:25:22 1861 3

原创 [网鼎杯 2020 青龙组]singal 1

在主函数中找到了一个vm的译码器,译码器主要是解释传入的opcode,然后对我们输入的字符操作,这里我们发现他是单字节比较的,方法很多可以使用单字节映射,也可以是使用符号化执行,当然也可以硬着头皮去看。

2023-12-01 23:34:00 501

原创 ISCTF-Reverse-WriteUP

处理程序的调用顺序。如果参数为非零值,则处理程序是要调用的第一个处理程序。如果 参数为零,则处理程序是最后一个要调用的处理程序。保证坐标向下递增,同时放入byte_434d3c中,比较byte_41C0A0,那么byte_41C0A0保存的就是我们的坐标。发现有5个地方出现重复值,hint给出了正确答案的md5,那么我们排列组合产生32组数据判断哈希。TEA的加密流程为加密一号位和二号位时取三号位,最后两位取第一位作为key。那么会发现当加密78位时,使用的key是加密后的1位,因此我们需要倒序解密。

2023-11-30 01:09:02 277

原创 [靶场]HackTheBox Sau

启动靶机之后拿到靶机的ip,这里我建议在连接靶场VPN的时候把tcp和udp的两个协议的配置文件都下载下来,然后分别在kali和windows上面使用,这样就不会导致ip冲突,反复掉线的情况。

2023-08-10 11:32:20 487

原创 [靶场练习]内部文件上传系统漏洞分析溯源

文件上传漏洞是web安全中经常用到的一种漏洞形式。是对数据与代码分离原则的一种攻击。上传漏洞顾名思义,就是攻击者上传了一个可执行文件如木马,病毒,恶意脚本,WebShell等到服务器执行,并最终获得网站控制权限的高危漏洞。

2023-08-02 15:31:29 226

原创 Webmin远程命令执行漏洞(CVE-2019-15107)复现

Webmin是目前功能最强大的基于Web的Unix系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作。据统计,互联网上大约有13w台机器使用Webmin。当用户开启Webmin密码重置功能后,攻击者可以通过发送POST请求在目标系统中执行任意命令,且无需身份验证。

2023-08-01 15:32:59 276

原创 [Sec]缓冲区溢出原理以及实践剖析

缓冲区溢出是指当计算机向缓冲区内填充数据位数时超过了缓冲区本身的容量溢出的数据覆盖在合法数据上,理想的情况是程序检查数据长度并不允许输入超过缓冲区长度的字符,但是绝大多数程序都会假设数据长度总是与所分配的储存空间相匹配,这就为缓冲区溢出埋下隐患,操作系统所使用的缓冲区,又被称为"堆栈"。在各个操作进程之间,指令会被临时储存在"堆栈"当中,"堆栈"也会出现缓冲区溢出。让我们来使用具体案例解释一下什么是缓冲区溢出。

2023-07-31 17:39:10 282

原创 墨者 - X-Forwarded-For注入漏洞实战

X-Forwarded-For:简称XFF头,代表了HTTP的请求端真实的IP。它被认为是客户端通过HTTP代理或者负载均衡器连接到web服务端获取源ip地址的一个标准(通常一些网站的防注入功能会记录请求端真实IP地址并写入数据库或某文件[通过修改XXF头可以实现伪造IP])。XFF,是X-Forwarded-for的缩写,属于SQL注入的一种,该注入原理是通过修改X-Forwarded-for头对带入系统的dns进行sql注入,达到欺骗服务器执行恶意的SQL命令的效果,从而可以得到网站的数据库内容。

2023-07-31 17:38:03 399

原创 [HWS]animals

本来都打算退役了,看到一个挺有意思的题目,出来写一下wp,(这个题我只能说作者很会玩)首先IDA打开熟悉的味道熟悉的花整整两段,没有办法,挫一个idapython脚本梭一下main函数分析错了,并且下面这一段不能按p声明。往下翻找发现这里有一个字节未识别,按C识别一下识别完了之后一大段地址全部爆红此时我们回到main函数下面继续按p可以按p了,但是出main函数仍旧是有问题的,并且我们tab查看一下函数内容寄存器丢失的同时还非常的乱,所以不能直接p我们需要修改main函数

2023-07-16 21:03:07 77

原创 [Reverse]IDA使用保姆级指南

IDA会出现两个图标,其中X64是用来反编译64位程序的,而X32是用来反编译32位程序的。常用的软件有exeinfope.exe或者使用IDA软件本身查看使用ida打开程序后会出现界面通常情况下,这个界面可以直接使用ok来继续,该界面主要是选择什么模式去解析该软件。IDA的主要界面如上所示左侧窗口为函数列表窗口,右侧窗口为IDA反汇编所得的汇编代码,最下侧窗口为文件在反汇编过程中的信息。

2023-07-10 17:01:30 8142

原创 [虚拟机逆向]UNCTF - 2019 EasyVm

虚拟机逆向是指对一个运行在虚拟机上的程序进行逆向工程。虚拟机是一种软件层,它模拟了一种计算机架构,允许程序在不同的平台上运行。在虚拟机上运行的程序通常使用一种特定的指令集,这个指令集不同于在物理机器上运行的指令集。虚拟机逆向包括对虚拟机本身的分析,以及对在虚拟机上运行的程序的分析。对于虚拟机本身的分析,可以探究虚拟机的指令集、内存布局、代码执行流程等方面。对于在虚拟机上运行的程序的分析,可以通过反编译、动态调试等手段获取程序的源代码、调用栈信息、内存映射等信息,以此来理解程序的行为和工作原理。

2023-03-06 21:58:40 846

原创 [Reverse][HGAME]kunmusic

dll文件检查之后发现是.net直接使用dnspy反编译发现这里在对这个data做什么处理下断点动态调试查看内存发现mz文件头,将数据dump出来,构成一个新的dll文件再使用dnspy反编译music类中发现了约束求解的逻辑,揭秘之后在和enc异或就可以得到flag。

2023-02-02 16:54:44 120

原创 [Reverse][Hgame2023]patchme

点开文件可以看到一个可疑函数对文件地址进行操作跟踪过去看一看发现地址爆红,出现大量没有被解析的数据段那么我们猜测这里是对文件进行保护的一个函数,那么我们将其异或回去,使用idc或者idapython运行idapython脚本之后发现本来ida无法识别的汇编代码变得可以识别了,那么我们声明所有的未声明函数就可以在下面找到输出flag的方法了。

2023-02-02 16:27:28 146

原创 [SWPUCTF 2021 新生赛]easy_md5

由于php中存在==的弱类型比较,所以我们可以通过hash比较的缺陷去绕过也就是只要两个数的md5加密后的值以0e开头就可以绕过,因为php在进行弱类型比较(即==)时,会现转换字符串的类型,在进行比较,而在比较是因为两个数都是以0e开头会被认为是科学计数法,0e后面加任何数在科学计数法中都是0,所以两数相等,在进行严格比较(===)时才会先判断字符串类型是否相等,在比较。像这样特殊的md5值还有。

2023-01-16 14:52:41 1510

原创 [Revserse][BJDCTF2020]encode

那么flag长度是21的话,经过base64加密之后应该是28位数,但是v6中存储的却只有49位数字,这是因为这个字符串有些01或者0E被识别成了1和E。首先将v6地址上存储的数据进行rc4解密,然后循环异或,最后再使用base64变表解密,就行了。sub_80481D0是将base64加密后的数据存到v5 + 18 的地址上面。文件将输入点放在v6数组的第50个地址上面,输入之后判断长度为21.题目中这个v6的字符串,由于ida的原因是分析错误了的。然后文件进入了sub_8048AC2进行了加密。

2022-12-28 17:28:13 251 1

原创 2022年春秋杯godeep

我们可以发现引用回来的函数,在上面就是1在下面就是0,那么我们可以发现函数头地址减去引用点的地址如果小于111那么函数就是在上面的,然后我们就通过idapython来进行判断然后输出。欸,发现正好是123123,那么逻辑就是很明显了,就是把我们输入的东西变成二进制,然后通过二进制里面的01来判断进入if里面的上面的函数还是下面的函数。主函数里发现了一个hint,告诉我们如果我们成功了就会输出一个right。发现输出了我们想要的二进制数据,不过可能是我的脚本太烂了。发现这个就是输出right的函数。

2022-12-25 22:27:49 80

原创 [Reverse]2022年春秋杯easy_python

直接看到题目文件显然这是一段python文件的字节码,看到129行之前的一连串的赋值语句,加上数组名字叫做flag我们可以知道这个就是我们需要解密的明文,那么我们再看接下来的加密部分看到这个指令,就是进行一个循环,也就是189-54=135那么就是135行到189行设置了一个循环,迭代器是0-42可以看到循环的主要内容就是,首先拿到flag[i]的值然后右移5位然后再取flag[i]的值,然后左移3位,然后将两个值进行位或运算之后再与255再存入flag[i]

2022-12-25 15:36:56 107

原创 [第五空间 2021]StrangeLanguage

由于pyd文件的本质就是dll文件所以我们直接使用ida64来反汇编程序就好了。字符串中可以发现这个数据,很明显这个数据就是brainfuck代码。反编译main.pyc文件后可以发现里面只是单纯的调用了一个文件。运行之后就可以得到一段反编译过来的python代码了。然后我们看后序的加密,根据逻辑推断可以发现是异或,此处发现大量的赋值语句,显然这就是enc了。我们直接利用python脚本将其解释。我们找到这个brainfuck文件。修改逻辑后将这一段代码输出来。并且是本位异或下一位的数据。

2022-12-25 01:38:03 301

原创 [Reverse]2022弱口令安全招新赛 tea

TEA算法使用64位的明文分组和128位的密钥,它使用Feistel分组加密框架,需要进行 64 轮迭代,尽管作者认为 32 轮已经足够了。该算法使用了一个神秘常数δ作为倍数,它来源于黄金比率,以保证每一轮加密都不相同。但δ的精确值似乎并不重要,这里 TEA 把它定义为 δ=「(√5 - 1)231」(也就是程序中的 0×9E3779B9)

2022-12-24 12:46:22 180

原创 [Reverse]NISACTF 2022 string

C 库函数 void srand(unsigned int seed) 播种由函数 rand 使用的随机数发生器。

2022-12-24 12:43:55 64

原创 [Reverse]NISACTF 2022 string

C 库函数 void srand(unsigned int seed) 播种由函数 rand 使用的随机数发生器。

2022-12-24 12:40:46 167

原创 [Reverse]首届“天权信安&catf1ag”网络安全联合公开赛checkin

进入这个界面看到pushad就可以确定是有壳了,我们按f8单步运行至mov指令。(这里直接nop会从E8变成90,我们需要先把90单独按c转化为nop指令)然后一直按f8直到程序第一次跳转后再按f8 就是找到了程序入口。选择刚刚重命名的文件,就可以看到桌面上出现了,就是脱壳成功了。接下来发现下面还有红色的部分也是按照上面的操作类似操作。再把数据E8用nop填充然后逐行按c转化为代码。讲红色部分全部框住然后按p声明之后进入函数。操作到这里然后把上面的代码都括住按p声明。这样的数据都按c转化为汇编代码。

2022-12-24 12:38:40 348

原创 [Reverse]BABYRE(idapython解题)

脚本内容就是每一位数字对0xC也就是12进行异或,我们这里需要使用到的是 PatchByte 函数.(我个人的理解 PatchByte函数就是将后面的值赋值给前面的地址)这一段对judge函数进行了处理,那我们思路就来了我们只需要按照这个方式将judge数组里面的东西处理了之后再按c分析代码就可以出来judge函数了。循环的内容是将上面字符串循环13次恰好等于[rbp+var_13]的长度,也就是进行处理字符串。我们点击下面的run运行之后会发现judge的值已经被我们改变了。

2022-12-24 12:35:04 286

原创 [Reverse]NISACTF 2022 string

C 库函数 void srand(unsigned int seed) 播种由函数 rand 使用的随机数发生器。

2022-12-24 12:34:28 223

原创 [Reverse]crypt(rc4)

可以发现0x14000131B处出现了异或,也就是执行22行代码的位置,我们只需要把所有异或的v9储存下来然后与0x22和密文异或就行了。我们继续按f8当rip运行到。按f9进入动态调试,我们需要输入22位数据(flag长度为22位)该处时我们将鼠标放到rdx上可以看到里面的数值也就是此刻v9的数值。进入这个窗口后我们选中22行按tab进入汇编界面。反复操作22次我们可以得到如下数据。首先我们在这两处下断点。

2022-12-24 12:32:30 218

原创 [Reverse][NISACTF 2022]sign-ezc++(追踪命名空间)

例如,您可能会写一个名为 xyz() 的函数,在另一个可用的库中也存在一个相同的函数 xyz()。因此,引入了命名空间这个概念,专门用于解决上面的问题,它可作为附加信息来区分不同库中相同名称的函数、类、变量等。假设这样一种情况,当一个班上有两个名叫 Zara 的学生时,为了明确区分它们,我们在使用名字之外,不得不使用一些额外的信息,比如他们的家庭住址,或者他们父母的名字等等。我们举一个计算机系统中的例子,一个文件夹(目录)中可以包含多个文件夹,每个文件夹中不能有相同的文件名,但不同文件夹中的文件可以重名。

2022-12-24 12:31:04 434

原创 [NISACTF 2022]ezpython(PyInstaller封装程序反编译)

[NISACTF 2022]ezpython(PyInstaller封装程序反编译)

2022-12-24 03:28:35 761

原创 [BJDCTF 2020]Easy

[BJDCTF 2020]Easy

2022-12-24 03:27:48 161

原创 学习笔记-概率DP

学习笔记-概率DP

2022-03-16 21:19:49 260 2

原创 寒假打卡--算法--栈 例题:AcWing 129. 火车进栈

寒假打卡--算法--栈 例题:AcWing 129. 火车进栈

2022-02-20 19:58:27 204 1

原创 寒假打卡--算法--动态规划-背包问题 -------AcWing 278. 数字组合

寒假打卡--算法--动态规划-背包问题 -------AcWing 278. 数字组合

2022-02-13 19:50:56 113

原创 寒假 -贪心算法---AcWing 112. 雷达设备

寒假 -贪心算法---AcWing 112. 雷达设备

2022-01-30 19:15:55 554

原创 寒假打卡-算法-差分--例题AcWing 100. IncDec序列

寒假打卡-算法-差分--例题AcWing 100. IncDec序列

2022-01-23 19:25:30 207

原创 寒假打卡-算(一维前缀和,二维前缀和)

寒假打卡-算(一维前缀和,二维前缀和)-AcWing 99. 激光炸弹

2022-01-15 21:25:16 234

原创 赛后题解11月 月赛 总题数11,4未解;

赛后题解

2021-11-30 21:33:28 308

原创 A. Jeff and Digits 赛后题解

A. Jeff and Digits 赛后题解

2021-11-29 21:23:05 184

空空如也

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

TA关注的人

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