会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
莫道儒冠误此生,从来诗书不负人。
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
下一页
2022年3月7日
栈上的格式化字符串漏洞利用
摘要:
综述 通过格式化字符串漏洞可以进行任意内存的读写。由于函数参数通过栈进行传递,因此使用%X$p(X为任意正整数)可以泄露栈上的数据。并且,在能对栈上数据进行控制的情况下,可以事先将想泄露的地址写在栈上,再使用%X$p,就可以以字符串格式输出想泄露的地址。 除此之外,由于"%n"可以将已经成功输出的字
阅读全文
posted @ 2022-03-07 21:35 vi0let
阅读(501)
评论(0)
推荐(0)
2022年1月17日
格式化字符串介绍
摘要:
格式化字符串介绍 格式化字符串(format string),是一些程序设计语言在格式化输出API函数中用于指定输出参数的格式与相应位置的字符串参数,例如C、C++等程序设计语言的print类函数,其中的转换说明(conversion specification)用于把随后对应的0个或多个函数参数转
阅读全文
posted @ 2022-01-17 22:41 vi0let
阅读(1144)
评论(0)
推荐(0)
栈溢出进阶(下)
摘要:
stack pivot 原理 leave -> mov rsp,rbp pop rbp ret ret 优点 :所需溢出字节较少 条件 :栈溢出控制程序执行流;存在可以控制内容的内存(栈、堆、bss...),且需泄露地址。 SROP SROP全称是Sigreturn Oriented Program
阅读全文
posted @ 2022-01-17 22:39 vi0let
阅读(34)
评论(0)
推荐(0)
栈溢出进阶(上)
摘要:
stack smash 原理:在程序加了 canary 保护之后,如果我们读取的 buffer 覆盖了对应的值时,程序就会报错,而一般来说我们并不会关心报错信息。而 stack smash 技巧则就是利用打印这一信息的程序来得到我们想要的内容。这是因为在程序启动 canary 保护之后,如果发现 c
阅读全文
posted @ 2022-01-17 22:34 vi0let
阅读(76)
评论(0)
推荐(0)
ret2xx
摘要:
ROP 随着NX保护的开启,以往直接向栈或者堆上直接注入代码的方式难以继续发挥效果。所以攻击者们也提出来相应的方法来绕过保护,目前主要是ROP(Return Oriented Programming),其主要思想是在栈缓冲区溢出的基础上,利用程序中已有的小片段(gadgets)来改变某些寄存器或者变
阅读全文
posted @ 2022-01-17 22:33 vi0let
阅读(81)
评论(0)
推荐(0)
canary_pie绕过
摘要:
canary机制介绍 canary是一种用来防护栈溢出的保护机制。其原理是在一个函数的入口处,先从fs/gs寄存器中取 出一个4字节(eax)或者8字节(rax)的值存到栈上,当函数结束时会检查这个栈上的值是否和存进去 的值一致 当canary被纂改时,触发__Stack_chk_fail。 can
阅读全文
posted @ 2022-01-17 22:32 vi0let
阅读(456)
评论(0)
推荐(0)
栈溢出
摘要:
栈溢出 C语言函数调用栈 • 函数调用栈是指程序运行时内存一段连续的区域 • 用来保存函数运行时的状态信息,包括函数参数与局部变量等 • 称之为“栈”是因为发生函数调用时,调用函数(caller)的状态被保存在栈内,被调用函数(callee)的状态被压入调用栈的栈顶 • 在函数调用结束时,栈顶的函数
阅读全文
posted @ 2022-01-17 22:30 vi0let
阅读(74)
评论(0)
推荐(0)
shellcode
摘要:
shellcode|概述 shellcode通常是软件漏洞利用过程中使用一小段机器代码 作用: 1、启动shellcode,进行交互 2、打开服务器端口等待连接 3、反向连接端口 4、。。。 shellcode编写 编写时面临的问题 下面是一个简短的shell程序: #include"stdlib.
阅读全文
posted @ 2022-01-17 22:24 vi0let
阅读(209)
评论(0)
推荐(0)
装载与汇编
摘要:
程序的装载与进程的执行 静态链接的程序的执行过程 动态链接的程序的执行过程 x86&amd64汇编简述 常用汇编指令: mov lea add/sub push/pop cmp jmp j[condition] call/ret leave ... mov指令:赋值 lea指令:取址 push指令:
阅读全文
posted @ 2022-01-17 22:23 vi0let
阅读(31)
评论(0)
推荐(0)
CPU与进程的执行
摘要:
程序的编译与链接 小端序 低地址存放数据低位、高地址存放数据高位 我们所主要关注的格式 大端序 低地址存放数据高位、高地址存放数据低位 程序的装载与进程的执行 amd64寄存器结构 rax:8Bytes eax:4Bytes ax:2Bytes ah:1Bytes al:1Bytes 部分寄存器功能
阅读全文
posted @ 2022-01-17 22:21 vi0let
阅读(27)
评论(0)
推荐(0)
上一页
1
2
3
4
下一页
公告