- 博客(19)
- 收藏
- 关注
原创 勒索病毒分析常用方法:
API断点法: 1.文件相关API: 1.CreateFileW 获取文件句柄 2.DeleteFileW 3.CopyFileW 4.FindFirstFileW 用于文件遍历 5.GetFileSize 6.ReadFile 7.shell32.ExtractIconExW 文件图标提取 8.SetFileAttributesW 文件属性设定为保存 9.WriteFile 10.LoadLibraryA装载动态链接库 2.命令执行或者启动进程: 1.shell32.Shel
2021-01-11 09:42:35
451
原创 ARM64下ROP,以及调试技巧总结:
aarch64依赖库: apt-get install libc6-arm64-cross 动态需要指定动态库加载路径: qemu-aarch64-static -L /usr/aarch64-linux-gnu ./arm 安装:gdb-multiarch sudo apt-get install git gdb-multiarch 调试时,需要启动gdb-multiarch gdb-multi...
2020-04-06 21:41:35
1794
原创 tcp/ip/https----------------------复习
一,TCP协议 : 在TCP/IP协议中,TCP协议能够提供可靠连接,是互联网的基石,采用三次握手建立一个连接. 第一次握手:Client发送syn/seq包给服务端,进入SYN_SENT状态。SYN为1,seq为随机值J,等待Server确认。 第二次握手:Server收到包后由SYN=1确定Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值se...
2020-03-28 14:41:17
243
原创 AArch64指令学习--总结
---------------寄存器学习-------------------- 33个寄存器: X0~X30, SP(X31)和PC W0 ~ W31分别是X0~X31的低32位 SP:通过SP寄存器确定参数和变量的位置。 X0:保存函数的返还结果。 X0~X7:用于传递子程序参数,多余参数采用堆栈传递 X8:用于保存子程序返回地址, X9~X15:临时寄存器,使用时不需要保存 FP...
2020-03-23 16:41:40
3575
原创 kernel pwn ——(1)
文件 to_pwner.tar.xz 解压命令: xz -d to_pwner.tar.xz 再次解压:tar -xvf to_pwner.tar 之后获得 src文件夹 获得src文件夹 ,里面包含了启动脚本startvm.sh 和问题驱动mod.ko, bzImage 是经过压缩的原始内核文件。 运行脚本尝试获得一些信息: 加载进来,是在别的目录里,驱动程序应该是一开始就已经加载了的,...
2020-03-17 20:33:38
554
原创 xctf的高校战“疫” easyheap
漏洞点在于结构体未清空,可被复用 p64(0), p64(0x21) p64(ptr), p64(size) 利用方法: 0x1 改free got 为 puts plt 泄露地址 0x2 突破free的次数限制,突破edit的次数限制 0x3 改free got 为 system address 0x4 改node2的ptr指向/bin/sh 0x5 fr...
2020-03-10 17:12:20
279
原创 记一次ret2__libc_start_main某处循环利用程序
0x1 程序开启了pie,但是程序的ret是__libc_start_main+0x240.此时我们可以部分修改ret为__libc_start_main+0x210左右的位置. 使得程序重新回到main函数,达到重复利用的目的。 0x2 程序中用户输入不能是0x00,所以不能填写地址,不能用rop的方法调用system("/bin/sh")函数 那么我们只能填写ret为one_gadget.来g...
2020-03-08 23:04:12
789
原创 固件分析笔记---环境搭建(一)
0x0 qemu的两种模式: 用户模式和系统模式 用户模式:可以轻松快捷的执行二进制文件,尽量使用chroot,防止找不到相应的动态链接库 系统模式:可以虚拟一个操作系统,内核调试的时候需要。 0x1 sudo chroot 将此目录作为根目录,方便寻找的动态库,否则报错 mips为大端,mipsel为小端。分别要在相应平台运行。 sudo chroot . ./qemu-mipsel-stat...
2020-03-05 16:40:18
342
原创 关于利用realloc函数调整栈使onegadget可执行。
此贴主要讲述: free_hook无法劫持,劫持__malloc_hook填onegadget全部失效的情况。我们利用realloc函数调整栈的位置,使得onegadget可执行。 直接上题了。buuoj上面的一个题。 保护全开。 漏洞点在于edit函数的溢出 常规思路,修改size,利用chunk overlap打free_hook,或者malloc_hook即可。 但是free_hook打...
2020-03-01 11:20:57
1356
原创 [Black Watch 入群题]PWN(栈迁移)
栈迁移主要解决溢出空间不足的问题, 前提条件知道欲迁移位置的地址。 from LibcSearcher import * from PwnContext.core import * binary = './spwn' debug_libc = './libc-2.23.so' elf = ELF(binary) libc = ELF(debug_libc) local = 1 if local ...
2020-02-06 16:48:28
1119
1
原创 BUUCTF_jarvisoj_level1
和原题的差别在于,远程不回显栈地址。直接常规栈溢出即可 #!/usr/bin/env python # -*- coding: utf-8 -*- from pwn import * from LibcSearcher import * elf = ELF("./level1") shellcode = asm(shellcraft.sh()) io = remote("node3.buuoj.c...
2020-02-06 16:41:30
1157
原创 [ZJCTF 2019]EasyHeap
常规堆溢出题,存在后门。但是buuctf没有复现环境。所有就用system_plt了。 # -*- coding: utf-8 -*- from PwnContext.core import * binary = './easyheap' debug_libc = './libc-2.23.so' elf = ELF(binary) libc = ELF(debug_libc) local = 1...
2020-01-31 18:30:31
1002
2
原创 ciscn_2019_n_5
very easy # -*- coding:utf-8 -*- from PwnContext.core import * local = 1 if local == 1 : p = remote('node3.buuoj.cn','25056') else: ctx.binary = binary ctx.remote_libc = debug_libc ctx...
2020-01-11 19:56:24
1141
5
原创 glibc的堆内存对齐机制
32位 0x1 最少分配16字节堆,8字节对齐。每次增加8。 0x2 其中4字节为头部。申请1-12堆。分配16字节堆。 64位 0x1 最少分配32字节堆,16字节对齐。每次增加16。 0x2 其中8字节为头部。申请1-24堆。分配32字节堆。 ** ...
2019-10-27 17:22:00
388
原创 fastbin attack + unsorted bin attack+ heap overflow+ double free fastbin + double free unlink
0x1 fastbin依靠单链表来组织的,堆管理结构始终维护一个指向最后一个chunk的指针(倒数第二个chunk的fd,通常情况这个fd指向的是下一个chunk起始地址)。这个指针决定了下一次要分配的chunk地址。 也就是说默认分配最好一个chunk给用户使用,同时最后一个chunk也是我们一开始第一个free掉的 0x2 我们的目的修改某一个chunk的fd ,这样我们就可以任意地址分配我们...
2019-10-27 17:21:33
540
原创 tcache的利用方法
tcache_perthread_struct结构体是用来管理tcache链表: 这个结构体位于heap段的起始位置,且有size:0x251 typedef struct tcache_perthread_struct { char counts[TCACHE_MAX_BINS];//数组长度64,每个元素最大为0x7,仅占用一个字节(对应64个tcache链表) tcache_entr...
2019-10-27 17:18:54
1831
转载 cmd命令查看本机端口占用:
cmd命令查看本机端口占用: netstat -ano 第五列为PID tasklist|findstr “PID” 通过PID查看是哪个exe占用端口
2019-05-19 09:12:31
2926
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅