自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 NSSCTF动调题包通关

定位到字符串即可。

2025-12-19 20:18:17 289

原创 CTFSHOW萌新赛

学不进去的时候打打萌新赛...

2025-12-16 21:28:01 316

原创 Polar PWN(简单1-24)

立志刷题攒够500 polar币。

2025-12-02 21:36:16 1052 2

原创 CTF SHOW逆向(上)

想做一些逆向题目提升代码分析能力。

2025-12-01 20:32:08 991

原创 Polar WEB(21-

这条语句给我干蒙了,到底怎么绕过?原来有个create_function 不多解释看图因此需要用:}闭合函数。还需要用//注释看到成功RCE那就好办了,直接Include(de被过滤了淦)用more即可。

2025-12-01 20:31:50 872

原创 Polar Reverse(困难)

这是一个obj文件,应该是VS编译产生的中间文件,实际上IDA可以直接分析,我们也可以用连接器先转变其为exe文件再操作。搜索得知高卢和凯撒有关,但是凯撒看了未果,看官方WP得知需要进行ASCII-3操作,说实话脑洞比较大,用随波逐流的ASCII偏移爆破解出来了。观官方题解知道,开始运行时候会给出一个3(这个3是因为第一次循环本质是判断奇数偶数数量,判断目标是一个3奇数3偶数的数组,自然返回3)下一步的算法实际上是对相应位置的数字乘个10,注意循环体第二行的代码实际上是8*(*取地址),并不是8的某次方。

2025-11-24 20:59:20 663

原创 Polar MISC(下)

主要是取证相关的内容。

2025-11-15 16:04:23 297 3

原创 Polar MISC (中)

上图是我截取的关键代码,第一个md5可以直接查询到,第二个是输入一个密码,就会往bytes数组添加一个1或者0,最终的字符串需要满足md5值,只能写爆破脚本了。出来的摩斯密码可解开软件的登录密码,(这里怀疑是md5碰撞)登陆密码根据刚才加密逻辑对应了一个二进制串,我们拼接后就是我的脚本爆破出的内容。还是隐藏有压缩包,解密,程序拖入IDA分析,在flag函数下看到其实是一个特别简单的加密,写出解密脚本即可】解压这个docm,提取出里面的gif,用工具查看帧间隔,替换就是摩斯密码。

2025-11-12 22:17:58 1143

原创 第一届数证杯做题笔记(流量分析和手机取证)

备战第二届数证杯!不给甲哥和丰哥拖后腿检材来源于didctf。

2025-10-31 15:31:50 1220 1

原创 Polar Reverse(中等)

点击flag出现,c68d-d262-5b91-2541-1ba7-1f3d-8103-41c4,将中间的连接号去除就是flag。--------------------待更新----------------------------给了两个PY文件,能清晰地看到judge函数的逻辑,即可清晰地知道密文的值,接下来就是主要看加密函数。简单来说,就是通过这样一个字典,实现了字符替换的加密,我们只需要根据字典,反带回去即可。遍历字典的键,如果输入的数组有它,就把输入数组的换成键对应的值。就一处花指令,比较简单。

2025-10-25 22:48:56 733

原创 Polar 逆向(简单难度)

就当练手,不能因为这是简单题就小看,还是很有收获的!

2025-10-21 22:36:01 666 2

原创 Polar MISC (上)

根据题目表述:SID给了,Xshell保存密码的配置文件给了,当用户使用Xshell登录服务器时使用了保存密码的功能,Xshell就会在其Session文件夹中保存有当前的密码加密哈希,此时再需要知道目标用户的机器名和SID值就可以破解该密码。进去看,是社会核心价值观解密, 解开根据前面的特征判断是一个CryptoJS含key加密,猜测是AES或者DES,用随波逐流自带的工具一个个尝试。打开是一串emoji,首先考虑是base100,发现并不是,换一种思考方式,用hex打开看看,也并未发现明显特征。

2025-10-16 22:17:18 1143 4

原创 Polar WEB(1-20)

据说swp是vim编辑器非正常退出产生的文件。怎么利用呢?用dirsearch扫描出/.index.php.swp这里了解到利用了正则回溯上限这个知识点,一旦匹配的字符串太长,就会直接返回false防止超负荷运转。所以可以利用这一点构造payload。参考。这里必须不能太大数字,不然报错。

2025-09-24 19:58:27 684

原创 PolarCTF PWN 网络安全2023秋季个人挑战赛刷题

所以想要一步步跟着做题。所有题目都在可以搜索到。

2025-09-21 17:57:37 895

原创 Angr符号执行初步学习

angr符号执行框架,是我一直想要理解学习的,今天就来实际学习体验一下。根据网上教的,应该是在网站上面下载对应的习题,编写对应的python进行练习。前置要求:安装angr库,我已经满足,接下来就开始进行捣鼓。angr的原理我也不太能解释清楚,所以直接开干吧。(默认python代码均引入angr库)

2025-09-10 20:13:13 358

原创 BUU MISC(看心情写)

看了wp才知道是toycrypto。这个真的不知道。根据提示,一表人才,二表倒立,我估计有用的信息就是二表倒立。关键就在于这个表:首先进行替换再说。出来了LDVUUCMEXMLQSSFUSXKEOCCG二表倒立,综合来看就是ACEG本来指向M,现在指向了Y,以此类推,就是从左到右从上到下翻了个顺序。出来了GWHTTOYSAYGREENTEAISCOOL,除去羊城杯的flag头即可。以下是完整脚本:顺便通过这个学了下字典和列表推导式,嘻嘻。

2025-09-08 20:44:03 649

原创 BUUCTF reverse 看心情写

应该是自修改代码。首先点在被修改的代码开头位置,输入以下代码去除加密。然后按C-P定义为函数。可以看到实现了一个很简单的 加密。

2025-07-08 10:54:41 412

原创 B站PWN教程笔记-12

完结撒花。今天还是以做题为主。

2025-06-17 21:46:14 516

原创 B站pwn教程笔记-11

house of xxx系列名字来源于某个安全研究专家,出了一论文,把一些漏洞全部命名为house of xxxx这系列漏洞利用复杂度较高,一般都是bin漏洞+其他更多漏洞结合起来来运用这里先搞一个简单一点的house of force。这个漏洞用到了堆溢出、整数溢出漏洞等。针对的是top chunk。本身有个chunk,根据堆溢出漏洞,覆盖了prev_size和size,size修改为很大的数字,让系统以为TOP CHUNK是几乎无限大的,避免了mmap的执行。

2025-06-17 18:46:34 1059

原创 BUU reverse (随机做题)

给了一个enc,好像是RSA加密后的,public key好像是AES加密,反正不是base64,这里卡住了,也没有明显的可执行文件让我分析下,只能看WP了原来需要公钥解析!!那就好办了,一下子得到了公钥、n等信息。但是,这竟然是逆向题。

2025-06-16 20:20:20 972

原创 BUU MISC(28-60)

还是对文件头不敏感。LSB隐写发现敏感文件头提示文件损坏,用WINrar修复后打开。里面是一个ELF,拖进IDA即可看到flag。

2025-06-04 20:38:00 875 1

原创 攻防世界逆向刷题笔记(新手模式9-21)

看样子是pyc文件损坏了。利用工具打开,发现是MAGIC坏了。搜下也没有头绪。看WP才知道36已经提示了pyc版本了。参考第二个文章,除了魔法数字还有8字节的额外信息。但是我填充之后还是bad magic,再看看WP咋说的。原来代表文件大小的地方还不能为0.也就是第12个字节。我们只需要修复一下就可以了。妈的,用FF也不行,看来必须中规中矩才行。用E5成功了。识别出是XTEA加密,写出解密即可。后期我这又出问题了,这一步就不搞了吧。

2025-05-27 20:54:20 1047

原创 BUUCTF PWN刷题笔记(持续更新!!)

64位,没有开启保护。点进去没发现明显的漏洞函数,考虑泄露libc基地址的rop构造。先看看有多少gadget估计也够用了。puts函数只接受一个参数,观看汇编看看用的哪个寄存器传输的参数。用的是edi。但是我们怎么找到so的版本呢,因为我们必须要知道so文件种puts函数的偏移量,才可以和泄露出puts的地址结合找到基址。可以用LibcSearch模块来搜索。libcsearch(符号,地址)新的心得:1.64位有效地址是6字节。2.libc.dump是LibcSearch的内置函数。

2025-05-19 23:44:53 1196

原创 B站PWN教程笔记-10

因为内容比较零散,我会尽量分类,但是还是不保准,有点琐碎了。

2025-05-13 19:36:31 679

原创 B站pwn教程笔记-9

可以去一些开源镜像站下载libc老的乌班图镜像,因为堆题的libc可能比较老,没有新的一些保护措施和机制。

2025-05-09 19:28:24 1037

原创 B站pwn教程笔记-8

接着上次的习题刷,然后补充新的知识。这开始就接触花式栈溢出了。

2025-05-08 21:46:20 836

原创 B站pwn教程笔记-7

合理利用recvuntil和sendlineafter,可以和远程程序IO同步,减少BUG可能解释上面这一行代码,意思是接收到"\n"这里,并且drop意思是丢弃接收到的这个\N,只保留签名接收的数据同时cyclic可以快节省成本垃圾数据打开PIE的程序,IDA显示的就是偏移地址,而非虚拟空间的地址了。下面这行代码就是一个debug相当于。

2025-05-07 21:25:52 978

转载 吾爱破解安卓逆向学习笔记(p5)

动态调试是指自带的调试器跟踪自己软件的运行,可以在调试的过程中知道参数或者局部变量的值以及履清代码运行的先后顺序。定义:Log插桩指的是反编译APK文件时,在对应的smali文件里,添加相应的smali代码,将程序中的关键信息,以log日志的形式进行输出。一般来说,在4选项中如果有ro.debuggable那就直接修改。adb shell am start -D -n 包名/类名。在需要获取寄存器值的地方,添加上面的的命令。安装这个,在下面选择要隐藏的APP。输入这,启动我们的软件。

2025-05-06 23:53:28 875

原创 B站pwn教程笔记-6

看下图,gets的参数显然是buf2,那么根据这个原则,用完buf2之后,我们就把他清理了。第一个paylaod是来编写栈空间的,和这个gets没关系,因为gets用的自己的栈帧,回来的时候刚好rsp会回来。所以即使开启地址随机化,相对于页来说puts的地址是相对固定的,就是000+140,那也就是说无论怎么随机化,puts的地址后三位是相对固定的。为了达到攻击效果,可以不择手段,比如有一个字符串flush,我们可以把s地址传过去,就是sh,/bin/sh是绝对地址,但是sh有时候也可奏效。

2025-05-06 18:17:11 791

原创 BUUCTF PWN刷题笔记(1-9)

看灰色地址,8是r的开始,所以我们要覆盖上面的0x30和下面的8.返回地址恰好就是给system函数给参数的,见图二。看到0x61是我们输入的a的ASCII码,结合rax常用来储存这类信息,很明确最后的gets函数输入的内容就在这里了。分析下列代码可知,read会读取我们输入的指定字节的数据,这点就是突破,而程序已经有一个backdoor函数,只需要ret2text即可。由于对动调还不熟练,所以我在IDA里面看了栈结构,同时注意到没有开启任何保护,发现可以进行栈溢出,应该是修改指定变量值为要求的即可。

2025-04-21 21:16:37 1047

原创 吾爱破解安卓逆向学习笔记(4p)

学习目标,了解安卓四大组件,activity生命周期,同时了解去除部分广告和更新提示。

2025-03-31 20:10:17 1387

原创 B站pwn教程笔记-5

首先复习一下ELF文件在内存和磁盘中的不同。内存只关注读写这权限,会合并一些代码段。动态链接库只在内存中单独装在一份因为很多软件都要用动态链接库了,不可能一个个单独复制一份。但是在有的调试环境下会单独显示出来各一份。ld.so是装载器。为什么用栈来储存,因为函数都是后调用先返回,刚好符合栈的后进先出的特点。ebp指向先前EBP的字节的开头部分(默认小端序)返回地址上面紧跟的就是子函数参数,为了绕过一些保护手段,攻击手段不断升级了。

2025-03-20 21:32:55 576

原创 BUUCTF逆向刷题笔记(13-20)

随后, 看这个代码:我们可以改写为:ASCII不超过128的,对着以后还要敏感点。但是%128并不是无用,因为里面还有负数,如-1%5还余4,(在python里面)这个需要注意。

2025-03-12 20:54:46 1746

原创 BUUCTF逆向刷题笔记(1-12)

请见小库里的blog。

2025-03-06 20:53:29 2036

原创 B站pwn教程笔记-4

也需要ROP创造执行shellcode的环境。但通常返回的是动态链接库里面。难点:因为是动态链接,自带的gadget较少。注意,这里有个干扰函数,但是这里的system函数确实给plt表增加了一个表项(前提是动态连接的软件),相当于知道system地址了。我们就可以让她在libc执行一个system。因为是32位,我们要在栈上控制一手参数,让system函数的参数变成有用的。参数都是在父函数。最终栈帧构造如下(以后会详细讲解):最后一个知识点:C语言传递字符串参数传递的是起始指针。

2025-03-05 20:23:01 974

原创 B站pwn教程笔记-3

GDB显示的栈地址有时候并不是可靠的地址,gdb也是用特殊的进程映像来拿地址的。且gdb默认关闭栈地址随机化。但是,偏移量是没有错误的。目前还没学到咋解决第一个栈帧是main函数栈帧,之前的一些系统函数什么的没有栈帧。执行了leave之后的情况:会pop ebp,所以esp+1,然后ebp恢复原来样子了。然后会执行retn,那就是将返回地址相当于pop给eip寄存器。,在 ebp下面会有一个值,创建栈帧的时候就有了。如果销毁栈帧时检测到这个值被修改了,那么他就会崩溃退出。可以在gcc编译的时候打开。

2025-02-25 19:36:16 1017 2

原创 B站pwn教程笔记-2

栈帧结构概览看上图的高地址和低地址。arguments是子函数的形参。蓝色的是上一个栈的ebp值,用于在子函数执行完毕之后,返回到正确的ebp.heap的占的内存大大的超过stack。下面看看调用栈的详细过程。一个函数都是以push ebp开始,因为这保存了主调函数的栈底,便于下一步恢复。离开一般都是leave和retn。而call自己就会将返回地址压入栈中。第一个栈溢出病毒莫里斯蠕虫 下图是一些用得到的工具。后两个工具以后会接触,one_gadget貌似牛逼点。保护措施见上图。

2025-02-24 19:05:31 750

原创 B站pwn教程笔记-1

就算只有4G内存,可能进程的虚拟内存都有三四G,这为了方便开发,真实物理地址寻址都交给操作系统来完成,不需要程序员考虑。fork()父进程拷贝分配给自己的虚拟内存,后期进行重写操作成子进程elf里面的。比如小端序的0x0233,在栈溢出里面,低地址存的是233,很容易覆盖了。注意链接(就像有的函数需要链接)这一步,有静态连接和动态连接。RAX一般存放返回值。因为没有垃圾处理机制,适合做编译,不会有堵塞 c语言市场占有率还是比较高的。在linux 给程序分配了3G虚拟内存,有1G是系统进程占用,大家共享。

2025-01-24 22:51:19 517 2

原创 攻防世界PWN刷题笔记(引导模式)1-4 持续更新!!!

观察read函数上的buf字符数组,其长度为 80.它的下面还有s和r,r肯定保存着返回地址,s应该是保存的寄存器内容。具体的解释看下图,我们填满了函数自己的栈,溢出的内容覆盖了r.我们通过read输入了大于4字节的东西,多的就会“溢出”跑到goal的地址,从而篡改goal的内容。IDA将数字转为字符是nuaa,(大于2字节,是小端序,所以我们需要将其转换为aaun才可,与我们阅读习惯相反)我们看这个函数的汇编语言。但是发现函数的地址一直在低地址,这些函数都在高地址,怎么实现高地址对低地址的控制?

2024-12-26 21:32:12 1203 2

原创 攻防世界web(新手模式)刷题笔记

逆向太难了!!!学会儿入门的web切换一下大脑,本博客只记录一部分web题目,因为有的题已经做过了,但是没留下一些笔记。

2024-12-17 23:04:58 661 1

空空如也

空空如也

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

TA关注的人

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