CTF
文章平均质量分 66
轻闲一号机
这个作者很懒,什么都没留下…
展开
-
【PWN】04.汇编分析
然后将先前存入栈中的ebp的值(0xffffd618)弹出放入当前ebp寄存器中,这时esp指向0xffffd60c(即为调用sum时放入栈中的main函数中call sum指令的下一条指令的地址(即指令add esp,8的地址0x565561eb))。call指令是将call sum指令的下一条指令的地址(即指令add esp,8的地址0x565561eb)入栈,即为sum()函数的返回地址。根据栈先入后出的特性,我们要使2先入栈,1再入栈,使得参数1先出栈,2后出栈。7.将esp指向的地址放入ebp。原创 2022-11-12 16:19:41 · 475 阅读 · 0 评论 -
【PWN】07.ret2syscall
Linux 在x86上的系统调用通过 int 80h 实现,用系统调用号来区分入口函数。在 /usr/include/x86_64-linux-gnu/asm/unistd_64.h 和/usr/include/x86_64-linux-gnu/asm/unistd_32.h 分别可以查看 64 位和 32 位的系统调用号。原创 2022-11-12 01:02:32 · 2305 阅读 · 0 评论 -
【Crypto】md5碰撞代码
16位的md5:是从32位md5值来的。是将32位md5去掉前八位,去掉后八位得到的。md5的长度,默认为128bit,也就是128个0和1的二进制串,及32位十六进制。原创 2022-11-01 18:54:24 · 304 阅读 · 0 评论 -
【Crypto】RSA
目录1.已知(p,q,e),求d2.已知(p,q,e,c),求m3.已知(p,q,dp,dq,c),求m4.已知(e,dp,n,c),求m5.已知(n,e1,e2,c1,c2),求m6.已知(e,n1,c1,n2,c2),求m7.已知(p+q,p-q,e,c),求m7.已知(e,n,c),求m8.已知(e,n,c),求m(e极小,如3,低加密指数攻击)9.已知(e,n,c),求m(e很大,低解密指数攻击)10.已知(c,n,p*(q-1),q*(p-1)),求m参考:CTF中关于RSA的常见题型_abtgu原创 2022-11-01 15:29:17 · 5902 阅读 · 0 评论 -
【Misc】学习
学习b站视频:BV1eq4y1x71H。原创 2022-07-16 18:32:15 · 9493 阅读 · 1 评论 -
【Pwn】手动制作shellcode并测试
1.测试shellcode的代码:shellcode_32.c编译生成shellcode_test(注意取消NX保护,32、64位要区分)2.shellcode_32.asm源码3.(1)使用汇编器nasm把shellcode_32.asm编译成shellcode_32.o文件(2)shellcode_32.o链接生成可执行文件shellcode_32_exe(可省略)(3)从 shellcode_32.o或shellcode_32_exe 提取code段,生成shell..原创 2022-05-26 13:41:32 · 443 阅读 · 0 评论 -
【Pwn】Rop-Ret2Shellcode-32位
ret2text漏洞依赖于程序中存在system(“/bin/sh”)的函数若没有此函数,可以传入自定义shellcode //shellcode是黑客编写的用于实行特定功能的汇编代码,例如:execve(“/bin/sh”,null,null);Ret2Shellcode条件:1.无执行shell的函数 2.没有开启NX保护Ret2libc条件:1.开启NX2.使用li...原创 2022-05-24 19:42:36 · 734 阅读 · 0 评论 -
【Pwn】使用gdb附加调试64位程序
elf,是Linux的主要可执行文件格式可通过 pwntools的gdb模块 完成 elf文件的动态调试工作例:编译:各种保护都不加其中最常用的还是attach函数,在指定process之后可以attach上去调试,配合proc模块就可以得到对应进程的pid非常方便。pwntools开发脚本时如何调试:1、使用proc.pidof(p)函数先将被测函数的PID打印出来;2、用GDB Attach上去调试即可。...原创 2022-05-17 19:55:13 · 1390 阅读 · 0 评论 -
【PWN】05.ret2text
栈溢出指的是程序向栈中某个变量中写入的字节数超过了这个变量本身所申请的字节数,因而导致与其相邻的栈中的变量的值被改变。通过栈溢出修改栈上的返回地址,这样cpu执行ret指令的时候,就会将被修改的值从栈上取出放入eip寄存器中,紧接着执行eip所指向的位置的指令,这样就相当于控制了程序的执行流。原创 2022-03-27 16:34:31 · 502 阅读 · 0 评论 -
【Linux】一些terminal命令
目录1.目录2.文件1.目录./:目前所在的目录。../:上一层目录。/:根目录。./xxx:执行当前目录下的xxx上一层目录 cd ..2.文件新建文件夹:mkdir 名称新建文件:touch 名称删除:rm -f 名称文件提 权:chmod 777 名称编译:gcc -m32 -o test test.cgdb:gdb test...原创 2022-03-21 13:03:21 · 1277 阅读 · 0 评论 -
【Pwn】printf漏洞
参考:https://bbs.pediy.com/thread-250858.htmFormat String 介绍 1 printf("Team Name: %s\tPoints: %d\n", "Whitzard", 999); 在上面这行语句中, "Team Name: %s\tPoints: %d\n"为格式化字符串(即printf第一个参数),"Whitzard"、999分别为第二个和第三个参数。在格式化字符串解析时,格式化字符串中的 "%s" 对应原创 2022-03-10 20:24:45 · 1096 阅读 · 0 评论 -
【Pwn】关于寄存器
16位:共用了9个标志位,它们主要用来反映CPU的状态和运算结果的特征。32位:标志寄存器扩展到32位,记为EFLAGS。它新增了四个控制标志位,分别是:IOPL、NT、RF、VM。分析:0x282 转换为二进制001010000010二进制数中1对应的是32位寄存器中的IF 与 SF位,所以 IF SF 取1...原创 2022-03-05 19:33:48 · 243 阅读 · 0 评论 -
【Pwn】什么是堆栈内存对齐
AND ESP 0XFFFFFFF0主流编译器的编译规则规定 “ 程序访问的地址必须向16字节对齐(被16整除)” ,内存对齐之后可以提高访问效率。对齐前:三次对齐后:两次原创 2022-03-05 14:30:46 · 1051 阅读 · 0 评论 -
【Pwn】保护和溢出
检查保护:checksec 文件名编译并关闭栈保护:gcc -no-pie -fno-stack-protector -z execstack -m32 -o read read.c查看程序使用了哪些函数:objdump -t -j .test.read(推荐使用ida)原创 2021-11-23 00:55:52 · 3866 阅读 · 0 评论 -
【PWN】Pwndbg
一、gdb与pwndbgGDB——The GNU Project Debugger.是Linux下面的一款强大的基于命令行的软件调试器。GDB的所有操作都基于命令行进行,有别于windows上的各种调试器。GDB的调试目标主要是带源代码的软件,即进行开发调试。若想要进行逆向工程调试,则需要GDB插件来提供额外的功能。pwndbg专门针对pwn题调试添加了额外的功能。二、调试三、跟踪代码四、打印五、pwndbg高级功能...原创 2021-11-23 00:57:04 · 11178 阅读 · 2 评论 -
【PWN】03.一些关于Pwn基础的笔记
参考:顾忧栈与栈帧的调试1.使用非类型安全语言(non-type-safe),如C/C++2.编译器设置的内存缓冲区太靠近关键数据结构寄存器是中央处理器内的组成部份。内存和寄存器是为了解决存储器读写速度而产生的多级存储机制。寄存器亦称缓存。:存储着 指向 系统栈最上面一个栈帧的的指针,在压栈和出栈时发生变化:存储着 指向 系统栈最上面一个栈帧的的指针,在函数运行时不变,可用来确定存储着 指向的指针是一种通用寄存器,在算术运算中存储输入输出数据,为函数提供返回值。原创 2021-11-14 21:51:13 · 1000 阅读 · 0 评论 -
【Linux】kali linux下安装sublime3
安装参考https://jingyan.baidu.com/article/e5c39bf5c840d039d7603336.htmlvim命令请参考Kali linux vim使用命令笔记_Marshal Zheng的博客-CSDN博客原创 2021-11-13 17:33:16 · 1355 阅读 · 0 评论 -
【PWN】02.基本介绍
一、原理 1.下载出题人提供的二进制程序,找到攻击目标(记录运行此程序的目标服务器) 2.逆向分析程序,漏洞挖掘 3.利用漏洞写脚本 4.攻击目标服务器获取flag二、基础 hook:Hook主要就是通过一定手段在程序执行过程中进行干预。 1.语言:C/C++ Python... 2.操作系统:Linux(基本的Linux命令) Win原创 2021-11-12 18:08:38 · 8658 阅读 · 0 评论 -
【PWN】01.插件安装
8.安装qemu,模拟 arm/mips 环境,进行运行和调试。9.在64位linux下运行32位程序,装multilib。4.安装 git,gdb 和 gdb-multiarch。5.安装 binfmt 用来识别文件类型。6.安装 gdb 的插件 pwndbg。2.安装python2.7。7.安装pwntools。1.在管理员模式下安装。原创 2021-11-08 23:21:32 · 905 阅读 · 0 评论 -
【BurpSuite】初学笔记之数据获取测试
运用Intruder并利用注入漏洞,批量匹配出所需要的数据。1.检查代理:Proxy--Options2.拦截关闭:Proxy--Intercept--关闭(Intercept is off)3.打开浏览器,查看代理4.打开网址寻找注入点5.打开bp查看抓取:Proxy--HTTP history--右键send to intruder进行测试6.查看Intruder:Intruder--Positions可以看出程序默认把1设置成为了变量点击Clear $ 清空..原创 2021-08-23 11:51:48 · 856 阅读 · 0 评论 -
【BurpSuite】初学笔记之Repeater
应用:在渗透测试中,进行请求与响应的消息验证分析。如修改请求参数,验证输入的漏洞与逻辑越权;从拦截历史记录中,捕获特征性的请求消息进行请求重放。功能:修改和重放http请求,如尝试手工注入,文件上传黑名单的测试等。基本使用:一:首先需要抓取一个http请求(历史记录):1.关掉拦截:Proxy--Intercept--点击Intercept is on将其改为Intercept is off2.打开浏览器(我用的火狐),查看代理是否设置完好:设置--网络设置--连接设置--手动配原创 2021-08-20 20:47:02 · 5040 阅读 · 0 评论