自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【移动安全】对webview漏洞的一些分析

if (getIntent().getExtras().getBoolean("is_reg", false)) { //根据传入的Intent中的参数,加载不同的URL。如果"is_reg"参数为true,则加载本地资源"registration.html",否则加载从Intent中传入的URL。//允许js代码与android应用交互。//可以恶意构造url。

2024-04-05 21:40:25 768

原创 【吾爱破解】Android初级题(二)的解题思路 _

javai++) {

2024-03-21 21:52:04 322

原创 【安卓逆向】一款小说app去除广告与解锁vip分析

这次的受害者是一款破解圈里面大名鼎鼎的:56yU6Laj6ZiB😼先来看看开屏广告(穿山甲)阅读小说时的广告(百度)你就说烦不烦🤣先来去除穿山甲广告:com.bytedance.pangle.Zeus.hasinitom.bytedance.pangle.Zeus.hasinit是一个用于判断是否已经初始化的方法,它通常是在字节跳动旗下的Pangle(原名Zeus)广告平台的SDK中使用的。这个方法用于检查广告SDK是否已经被正确地初始化,所以通过修改其放回值进行去初始化,就可以达到去除穿山甲广告的效果

2024-02-24 21:55:30 851

原创 【安卓逆向】app防止截屏分析与去除

>addFlags(),还有Landroid/view/Window;

2024-02-24 01:50:47 828

原创 [newstarctf2023] --RE wp

rc4加密表,base64换表:脚本梭就行pythonusername = b"genshinimpact"base64_table = [125, 239, 101, 151, 77, 163, 163, 110, 58, 230, 186, 206, 84, 84, 189, 193, 30, 63, 104, 178, 130, 211, 164, 94, 75, 16, 32, 33, 193, 160, 120, 47, 30, 127, 157, 66, 16

2024-02-22 22:09:49 1146

原创 【misc】ctfshow--CTF的一生如履薄冰

!

2024-02-07 22:17:00 696

原创 【pwn】ctfshow元旦水友赛--BadBoy

首先先来看一下程序的保护情况这里got表可改,没有开地址随机接着看一下ida逻辑很直接,只有一个main函数,一点点分析这段代码buf[1] = __readfsqword(0x28u); init_func(argc, argv, envp); buf[0] = 'gfedcba'; v5 = 0LL; while ( (_DWORD)kl ) { puts("i am bad boy "); __isoc99_scanf("%ld", &v4); write(

2024-02-06 16:47:23 1021 1

原创 【pwn】pwnable_start --只有read和write函数的getshell

addrlenfd'<'LINUX -

2024-02-04 20:12:39 853

原创 【安卓逆向】一款3d地图软件的逆向破解过程

今天在应用商城看到一款"3d地图"软件,下载打开发现看街景啥的都要vip,连地图放大都要vip,这不能忍!首先先用mt管理器简单看看,发现是没有加壳的,然后我们拖进android killer进行分析首先我们先对"会员”这个字符串进行搜索进行搜索上面这个unicode编码,表示的字符串是“当前已是会员”,我们先来分析以下这段smali代码这两句表示调用canUse这个方法,参数是MAP_VR,返回值存到v0里面,然后后面进阶着进行了if-eqz的判断,然后是0的话就跳转,不是0的话就打印出字符串“已经是会员

2024-02-03 21:33:32 791

原创 【pwn】[SUCTF 2018 招新赛]unlink --堆利用之unlink

先来看一下程序的保护情况堆栈不可执行,而且还开了canary看一下ida又是经典菜单题,接着分析每一个函数功能就行touch函数:有一个数组存malloc出来的地址delete函数:删除堆中的数据,不存在uaf漏洞show函数:打印堆中数据take_note函数:向堆中写数据分析到这里,根据题目的提示,那就用unlink来打,这里有篇博客可以先学习一下:【pwn学习】堆溢出(三)- Unlink和UAF_堆溢出 got表-CSDN博客首先我们先创建三个堆块debug看一下再看看一下存堆地址的数组接着我们来构

2024-01-18 14:58:45 918

原创 【pwn】cmcc_simplerop --rop链的构造

程序保护情况检查32位程序,堆栈不可执行主函数:左边又是一堆函数,file看一下发现是静态链接,那ret2libc不用考虑了,接着看一下有没有int 80那可以考虑利用rop链调用execve函数,用系统调用的函数参数是存在寄存器中的,但是本程序找不到/bin/sh的字符串,可以利用read函数读入/bin/sh字符串然后就是找gadgetexp:from pwn import *context(os='linux',arch='i386',log_level='debug')io=remote("node

2024-01-12 21:43:07 534

原创 【pwn】hitcontraining_uaf --堆利用之uaf

a。

2024-01-12 17:55:55 371

原创 【wargames】bandit0~9关wp

uniq filename 这会从文件 filename 中删除相邻的重复行,只保留一个副本。这会按字母顺序对文件 filename 的内容进行排序,并将结果输出到标准输出。

2023-12-30 01:24:18 916

原创 【linux提权】利用setuid进行简单提权

但是SUID权限的设置只针对二进制可执行文件,对于非可执行文件设置SUID没有任何意义,在执行过程中,调用者会暂时获得该文件的所有者权限,且该权限只在程序执行的过程中有效. 通俗的来讲,假设我们现在有一个。SUID (Set UID)是Linux中的一种特殊权限,其功能为用户运行某个程序时,如果该程序有SUID权限,那么程序运行为进程时,进程的属主。,我们可在非root用户下运行该二进制可执行文件,在执行文件时,该进程的权限将为root权限。

2023-12-24 23:57:52 421

原创 【pwn】[ZJCTF 2019]EasyHeap --fastbin攻击,house of spirit

/ 往堆中读入数据。

2023-12-22 08:17:06 890

原创 【misc】[NSSRound#12 Basic]Secrets in Shadow --linux提权,shadow文件hash爆破

首先使用ssh连上主机 :ssh [email protected] -p 28844 接着再输入ls -al查看文件尝试打开文件,发现权限不够,根据题目的提示打开shadow文件在以前的Linux系统中,用户名、所在的用户组、密码(单向加密)等信息都存储在、/etc/shadow的文件中,很多软件通过调用这个文件来获取用户名和用户组,例如ls命令通过用户ID来找到/etc/passwd文件中的用户名。这意味着,所有用户都要拥有/etc/passwd的读权限,否则这些用户将不能执行ls等命令。

2023-12-18 22:54:22 383

原创 【pwn】[HNCTF 2022 WEEK3]smash --花式栈溢出

在程序加了 canary 保护之后,如果我们读取的 buffer 覆盖了对应的值时,程序就会报错,而一般来说我们并不会关心报错信息。而 stack smash 技巧则就是利用打印这一信息的程序来得到我们想要的内容。这是因为在程序启动 canary 保护之后,如果发现 canary 被修改的话,程序就会执行 __stack_chk_fail 函数来打印 argv[0] 指针所指向的字符串,正常情况下,这个指针指向了程序名。

2023-12-17 21:40:39 45

原创 【misc】[西湖论剑 2022]mp3 --js代码,mp3隐写,lsb隐写

MP3Stego。

2023-12-14 23:09:35 33

原创 【misc】[网刃杯 2022]玩坏的winxp --磁盘取证初探

附件下载时vmdk文件首先尝试了vm虚拟机挂载,但是失败了,后面了解到winhex也可以挂载vmdk文件,这里我是使用DG进行磁盘分析挂载后,根据这个路径\Documents and Settings\Administrator\桌面\10个t的学习资料查找,可以看到有五张图片导出五张图片,binwalk看一下,在第五张图片中分离得到压缩包打开这个flag.png接着对这个flag.png进行binwalk分离的话还可以得到一个加密的压缩包这里有个提示,戴围脖的软件,初步判断是qq,然后没找到qq,但是有个

2023-12-12 22:01:06 34

原创 【misc】[GFCTF 2021]重生之我在A国当间谍 --短信pdu编码

附件下载发现只有两个文件打开flag.rar需要密码,那考虑解压密码应该是从secret.txt中获得,打开secret.txt文件试过很多加密方式都不行,考虑是短信的pdu编码 PDU编码(非常经典)-CSDN博客可以使用在线短信PDU 编码解码 - 在线工具 (bugscaner.com)在线解码,这里解码第三行数据得到base64数据WzFlNHJsMFwvZQ==base64解密可得压缩密码1e4rl0\/e打开压缩包,可以看到一张撕碎的二维码,拼接起来扫码就可以得到flag

2023-12-10 18:02:12 30

原创 【misc】txt零宽度隐写

零字符宽度隐写1.1 前置知识1.1.1 统一码(Unicode)统一码(Unicode),也叫万国码或单一码,是计算机科学领域中的一项业界标准,包括字符集、编码方案等。Unicode 是一种重要的交互和显示的通用字符编码标准,它覆盖了美国、欧洲、中东、非洲、印度、亚洲和太平洋的语言,以及古文和专业符号。Unicode 允许交换、处理和显示多语言文本以及公用的专业和数学符号。Unicode 字符可以适用于所有已知的编码。Unicode 是继 ASCII(美国国家交互信息标准编码)字符码后的一种新字符编码,它

2023-12-09 20:17:11 254

原创 【pwn】orw&rop --泄露libc基址,orw

我们先看看程序的保护的情况因为题目提示了orw,我们可以沙箱检测一下可以发现是禁用的execve函数的,接着看函数逻辑这里格式化字符串漏洞可以泄露canary和puts函数地址,先确定一下参数位置可以发现参数是在第六个位置,接下来就是构造ROP,调用read函数读取shellcode到mmap开辟的地址就行,这里的gadget可以用题目给的libc.so.6进行寻找,exp如下:from pwn import *context(os='linux',arch='amd64',log_level='debug

2023-12-04 00:44:57 138

原创 【pwn】shellcode revenge --0~9,A~Z字符的shellcode

payload += b'\x31\x42\x38' #31 42 38 xor DWORD PTR [rdx+0x38], eax 减syscall后面代码变成nop,为后面执行shellcode做准备。payload += b'\x31\x42\x30' #31 42 30 xor DWORD PTR [rdx+0x30], eax 将\x4e\x44异或成syscall的十六进制数。

2023-12-02 13:37:35 45

原创 【pwn】[HGAME 2022 week1]enter the pwn land --数组下标修改,栈溢出

查保护然后ida看代码逻辑来到关键函数,这里存在栈溢出漏洞,但是这是数组循环一个字节读入,我们看一下i的地址发现i的地址在rbp上面,所以我们构造payload肯定会把i的值给覆盖了,所以payload在构造时需要修改一下i的值,让我们的payload继续读入到正确位置,然后就是简单的ret2libcexp:from pwn import *from LibcSearcher import *context(os='linux',arch='amd64',log_level='debug')io=remot

2023-11-30 00:20:33 42

原创 【pwn】[FSCTF 2023]Fi3h --orw利用,沙箱检测

【代码】【pwn】[FSCTF 2023]Fi3h --orw利用,沙箱检测。

2023-11-19 15:14:32 137

原创 【pwn】[FSCTF 2023]What am I thinking? --pwntools工具的利用

这道题没给附件,直接就是nc这个题目的意思是,我们随机输入一个数,然后发给我们一段base64加密后的密文,真正num就在里面,我们现在写个pwntools脚本提取一下这段base64密文,解密一下,看看是什么东西exp:io=remote("node4.anna.nssctf.cn",28045)io.sendline(str(2))io.recvuntil(b"My brain:\n")data=io.recvuntil(b"\nTell",drop=True)#表示不包含\nTell这个字符串de_d

2023-11-19 11:15:02 56

原创 【pwn】[FSCTF 2023]stackmat --格式化字符串漏洞泄露canary

看一下程序的保护状态开了canary,接着看一下代码逻辑可以发现,这里有格式化字符串漏洞,同时gets函数有栈溢出漏洞,现在只需要确定我们输入到buf的内容在格式化字符的第几个参数就行可以确定buf在格式化字符串的第8个参数,又因为buf的偏移是0x20,所以canary在11个参数,因为canary的偏移是0x8exp:from pwn import *context(os='linux',arch='amd64',log_level='debug')io=remote("node4.anna.nssct

2023-11-18 20:32:11 121

原创 【pwn】[FSCTF 2023]2str --整数溢出绕过

检查一下保护状态接着ida看代码逻辑看func函数第一次看真没发现有什么漏洞,题目给了backdoor,虽然strlen可以\x00绕过,但是strcpy函数也限制漏洞的实现。仔细看的话,会发现v3的类型是 unsigned __int8 v3;说明v3是一个字节来表示的,可表示的范围只有0~255,那这样绕过思路就很清晰了,我们的payload构造长度超过255,不超过265就行,然后就可以绕过if语句的判断exp:from pwn import *context(os='linux',arch='i38

2023-11-18 19:38:16 69

原创 【misc】[CISCN 2021初赛]robot --流量包数据提取,坐标画图

打开附件的流量包可以发现有很多的tcp协议数据,追踪tcp协议数据看看可以发现tcp数据流中有很多类似坐标的东西,先把这些数据另存为txt保存,如何用正则表达式提取这些数据,提取脚本如下:import rewith open("data.txt", "r", encoding="utf-8") as f: data = f.read()pattern = r'tgPos\{\d+\}\.Value\.\[\d+,\d+,\d+\]' #正则表达式匹配results = re.fin

2023-11-17 23:15:39 70

原创 【re】[HGAME 2023 week3]kunmusic -- .net程序逆向,z3库约束

NET 是一个免费的跨平台开源开发人员平台,用于生成许多不同类型的应用程序。凭借 .NET,可以使用多种语言、编辑器和库来生成 Web、移动应用、桌面应用、游戏和 IoT 应用。

2023-11-17 20:22:29 546

原创 【misc】[SDCTF 2022]Flag Trafficker --jsFuck代码

]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!!![]+[])[+![]+[])[!+[]+!+[]]+(![]+[])[+!+[]]+(!!+[]+!+[]+!+[]]+(!!![]+[][(![]+[])[!

2023-11-15 20:50:22 61

原创 【pwn】[CISCN 2023 初赛]funcanary --爆破canary和pie

拿到程序先查一下保护状态可以发现保护全开,再看一下程序的逻辑可以发现,这里有一个fork函数:C语言中的fork()函数用于创建一个新的进程,该进程是原始进程(父进程)的一个副本。这个副本将从fork()函数之后的代码行开始执行,父进程和子进程在此处分别继续执行不同的代码。fork()函数的返回值有以下三种可能情况:如果返回-1,表示创建新进程失败。 如果返回0,表示当前进程是子进程。 如果返回一个正整数,表示当前进程是父进程,返回的整数是子进程的进程ID。就算说fork函数会开启一个子进程,然后根据whi

2023-11-14 21:29:34 129

原创 【re】[CISCN 2022 东北]easycpp --ida动态调试,循环异或

拿到程序,我们先查一下有没有加壳,发现没有加壳,并且是64位程序,拖进ida分析其代码逻辑int __cdecl main(int argc, const char **argv, const char **envp){ void **v3; // rcx __int64 v4; // r8 size_t v5; // r10 void **v6; // rax void **v7; // r8 void **v8; // rax void **v9; // r8 void **v10; /

2023-11-13 21:24:26 80

原创 【pwn】[UUCTF 2022 新生赛]easystack --pie爆破

查看程序保护发现开了pie:partial write(部分写入)就是一种利用PIE技术缺陷的bypass技术。由于内存的页载入机制,PIE的随机化只能影响到单个内存页。通常来说,一个内存页大小为0x1000,这就意味着不管地址怎么变,某条指令的后12位,3个十六进制数的地址是始终不变的。因此通过覆盖EIP的后8或16位 (按字节写入,每字节8位)就可以快速爆破或者直接劫持EIP简单来说就是后12位是不会被随机化的,接着看代码逻辑发现有个后门的函数可以getshell,但是问题是怎么溢出到这里,vuln函数

2023-11-12 21:12:14 248 1

原创 【pwn】[HUBUCTF 2022 新生赛]ez_pwn --随机数

查一下程序保护状态保护全开,看一下代码逻辑逻辑比较简单,就是输入一个用户名,然后进行随机数运算,这里可以使用ctypes模块,形成和服务器那边一模一样的随机数from pwn import *import ctypescontext(os='linux',arch='amd64',log_level='debug')io=remote("node5.anna.nssctf.cn",28750)libc=ctypes.CDLL("libc.so.6")io.recvuntil(b"there?\n")io.s

2023-11-12 13:07:52 71 1

原创 【pwn】[HGAME 2023 week1]simple_shellcode --orw利用攻击

先查看程序的保护状态可以看到,保护全开,拖进ida看主函数的逻辑可以看到有个mmap函数:mmap() 函数是Unix和类Unix操作系统中的一个系统调用,用于在进程的地址空间中映射文件或者其它对象。这样做的好处是可以让文件直接映射到内存中,从而避免了频繁的文件 I/O 操作,提高了文件的读取效率。mmap() 函数的一般形式如下:c复制代码void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset);参数说

2023-11-11 17:46:53 137 5

原创 【re】[广东省大学生攻防大赛 2022]pyre --爆破字符

附件下载下来,解压,发现是一个python打包的exe这里用pyinstxtractor进行反编译,后面会得到一个文件夹,里面有一个pyc文件这里可以用进行网站进行对pyc进行反编译:在线Python pyc文件编译与反编译 (lddgo.net)反编译的python结果如下:# Visit https://www.lddgo.net/string/pyc-compile-decompile for more information# Version : Python 3.7def check():

2023-11-09 22:44:19 58 1

原创 【misc】[HNCTF 2022 Week1]lake lake lake(JAIL) --沙盒逃逸,globals函数泄露全局变量

查看附件内容这道题的逻辑就是可以让你输入1或者2,进入各自的函数去执行功能func函数:def func(): code = input(">") if(len(code)>9): return print("you're hacker!") try: print(eval(code)) except: pass有长度限制,接着再来看backdoor函数:def backdoor(): print("Please enter the a

2023-11-09 11:04:35 80 1

原创 【misc】[HNCTF 2022 Week1]python2 input(JAIL) --沙盒逃逸,python2环境

查看附件,这次有点不太一样,这次是python2的环境只有一个input函数,但是python2的input函数可是不太一样:在python2中,函数从标准输入接收输入,并且自动求值,返回求出来的值在python2中,函数从标准输入接收输入,并返回输入字符串在python3中,函数从标准输入接收输入,并返回输入字符串就是说python2环境下的input函数有执行代码的能力,所以输入__import__('os').system('sh')即可getshell

2023-11-09 11:02:58 45 1

原创 【misc】[HNCTF 2022 Week1]calc_jail_beginner_level2.5(JAIL) --沙盒逃逸,breakpoint函数

_import__('os').system('sh')即可getshell。

2023-11-09 11:00:49 94 1

空空如也

空空如也

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

TA关注的人

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