- 博客(25)
- 收藏
- 关注
原创 Java-Shiro反序列化
Shiro550用的其实就是CB链,这里只是有一些细节需要注意,Shiro的触发点是Cookie处解码时会进行反序列化,他生成的反序列化字符串是进行AES对称加密的,因此要在对数据进行一次AES加密,反序列化漏洞的利用就建立在知晓key的情况下,而shiro最初时,key是直接硬编码写在源码里的,全局搜serialize。追踪一下链的过程,在PriorityQueue的readObject打个断点,开追,进入heapify。可以看到这个DEFAULT_CIPHER_KEY_BYTES。
2025-03-05 11:33:30
1062
原创 获取Kernel32基地址
当异常发生时,系统从fs:[0]指向的内存地址处取出ExceptionList字段,然后从ExceptionList字段指向的_EXCEPTION_REGISTRATION_RECORD结构中取出handler字段,并根据其中的地址去调用异常处理程序(回调函数)。异常处理链表是提到的由_EXCEPTION_REGISTRATION_RECORD结构构成的单链表。
2025-03-05 11:18:04
719
原创 CVE-2019-13272(Linux本地内核提权)
Linux执行PTRACE_TRACEME函数时,ptrace_link函数将获得对父进程凭据的RCU引用,然后将该指针指向get_cred函数,但是,对象struct cred的生存周期规则不允许无条件的将RCU引用转换为稳定引用。PTRACE_TRACEME获取父进程的凭证,使其能够像父进程一样执行父进程能够执行的各种操作,如果恶意低权限子进程使用PTRACE_TRACEME并且该子进程的父进程具有高权限,子进程可获取其父进程的控制权并且使用其父进程的权限调用execve函数创建一个新的高权限进程。
2024-11-22 16:44:03
442
原创 CVE-2016-5195(脏牛)
该漏洞是 Linux 内核的内存子系统在处理写时拷贝(Copy-on-Write)时存在条件竞争漏洞, 导致可以破坏私有只读内存映射。黑客可以在获取低权限的的本地用户后,利用此漏洞获取 其他只读内存映射的写权限,进一步获取 root 权限。
2024-11-21 09:15:37
236
原创 CVE-2022-0847(脏管)
CVE-2022-0847-DirtyPipe-Exploit CVE-2022-0847 是存在于 Linux内核 5.8 及之后版本中的本地提权漏洞。攻击者通过利用此漏洞,可覆盖重写任意可读文件中的数据,从而可将普通权限的用户提升到特权 root。CVE-2022-0847 的漏洞原理类似于 CVE-2016-5195 脏牛漏洞(Dirty Cow),但它更容易被利用。漏洞作者将此漏洞命名为“Dirty Pipe“影响范围Linux Kernel版本 >= 5.8。
2024-11-21 09:00:09
286
原创 MS16-075(烂土豆)
所谓的烂土豆提权就是俗称的MS16-075,其是一个本地提权,是针对本地用户的,不能用于域用户。可以将Windows工作站上的特权从最低级别提升到“ NT AUTHORITY \ SYSTEM” – Windows计算机上可用的最高特权级别。上线webshell靶机为windows server 2012 r2。执行成功,查看当前权限,为Administrator。msf设置监听,利用蚁剑执行shell.exe。使用msf生成木马,利用蚁剑上传至靶机。生成木马shell.exe。
2024-11-20 09:12:20
467
原创 vulnhub-MATRIX-BREAKOUT: 2 MORPHEUS
知识点:文件上传、php伪协议、shell反弹、漏洞收集脚本利用、CVE-2022-0847提权。
2024-11-14 09:24:02
281
原创 wmiexec.py分析
协议确定后,客户端进程向服务器发起一个用户或共享的认证,这个过程是通过发送session setup request请求数据报实现的。客户端发送一对用户名和密码或一个简单密码到服务器。然后服务器通过发送一个Session setup response应答数据报来允许或拒绝本次连接。首先客户端发送一个SMB请求数据报,列出它所支持的所有SMB协议版本。外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传。服务器收到请求信息后响应请求,并列出希望使用的协议版本。日志内容为 登录、特殊登录日志。
2024-11-13 17:20:25
327
原创 羊城杯2023 pwn-arrary_index_bank
存在整数溢出,不可以直接改地址,因为super_ai的返回地址一定比v1高所为不行。会等于0x38呢,因为7*8产生了进位所以4被64位舍弃。程序中含有system函数初步判定可能为ret2text。地址因为是十进制所以进行转换查看是否泄漏成功。地址已经泄漏完成开始payload的搭建。cmp操作进行完比较相同为0不相同为1。接收地址-super_ai的返回地址。考虑堆栈平衡 + 0x1315。发现RAX已经变成负数。泄漏地址为rbp下一位。如何进行整数溢出呢?
2024-07-19 09:22:52
438
原创 VCTF纳新赛2024 PWN-ezhp_code
v2申请了一个0x98大小的堆块 加上chunk头大小为0xa0。当检测位置不为0会返回执行函数(很可能有后门函数)输入31位的名字将字符串保存在a1+1的位置。程序实现两个功能一个增加用户 一个删除用户。检测堆块函数 a1+0x28的位置。第二次输入将值保存a1+12的位置。DWORD32位 4个字节。a1开始位0x8e62a8。进行tcachebin填满。再申请一次堆块执行后面函数。获得getshell。
2024-07-19 08:00:00
238
原创 HNCTF2024-easypwn
我们可以执行 exec 1>&0,也就是把标准输出重定向到标准输入,因为默认打开一个终端后,0,1,2都指向同一个位置也就是当前终端,所以这条语句相当于重启了标准输出,此时就可以执行命令并且看得到输出了。0是标准输入,1是标准输出,2是标准错误。
2024-07-18 12:30:00
266
原创 PWN计算libc偏移
已知__libc_start_main+240。用stack地址-vmmap地址得出偏移。首先程序进行一定的运行查看stack。所以在libc.sym中要-240。还是帕鲁杯2024Palu为例。以帕鲁杯2024Palu为例。
2024-07-18 12:00:00
352
原创 帕鲁杯2024-Palu
v4=8h+88h=90h canary偏移量=v4-v10=90h-8h=88h=136/8=17 因为amd64的缘故需要加上6个寄存器所以偏移量为25。由于文件开启canary,栈溢出得先泄漏canary地址,由于没有后门函数也无静态函数,还需要泄漏libc地址进行ret2libc。由于没有后面还需要泄漏libc地址我们利用canary后的__libc_start_main_ret进行泄漏。菜单函数无溢出漏洞 看字母提示猜测函数可能是进行编码和解码操作。泄漏canary地址,利用格式化字符串漏洞。
2024-07-17 15:53:24
1215
原创 GFCTF2021-where_is_shell
总而言之我们现在要构造的payload就是首先需要覆盖返回地址,然后使用ret弹出一个地址,再使用pop rdi ret 把我们的shell的地址存进rdi寄存器里,最后再调用system函数,因为rdi里存着shell函数的地址所以调用了system函数就等于system($0),因为rdi是64位传参中最先传输的。利用system($0)获得shell权限。正好tips函数中有我们需要的机器码。$0在机器码中为 \x24\x30。
2024-07-17 15:48:04
330
原创 XYCTF2024-PWN-hello_world
获取system bin_sh pop_rdi ret地址就可以编写payload。第一次栈溢出输出main函数的返回地址(libc地址)从d60开始到d88 需要泄漏0x28个字符才能泄漏。read以回车结束的话只需要0x27个字符。printf %s遇不到\00就会一直打印。第二次栈溢出获取getshell。动态调式获得libc地址。vmmap获取偏移量。
2024-06-18 09:20:41
384
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人