- 博客(20)
- 收藏
- 关注
原创 栈溢出0x0D ret2_dl_runtime_resolve
实际上,dl_runtime_resolve 是通过最后的 字符串 来确定执行那一个函数的,也就是说,可以通过控制这个地址的内容来执行任意函数,比如:system而 reloc_arg 是我们可控的,我们需要控制reloc_arg 间接控制 最后的字符串。为什么要使用ret2dlresolve?因为如果程序中没有类似puts或者printf的输出函数我们没办法泄露libc,那该怎么办?我们急需一种通用技术。
2024-10-13 21:24:57
827
原创 栈溢出0x09 ret2reg(绕过ASLR)
查看栈溢出返回时哪个寄存器指向缓冲区空间。查找对应的call 寄存器或者jmp 寄存器指令,将EIP设置为该指令地址。将寄存器所指向的空间上注入shellcode(确保该空间是可以执行的,通常是栈上的)这比较像前边的ret2shellcode,但是ret2shellcode一般是要知道shellcode的具体地址,但是开启ASLR后难以获得固定的shellcode的地址,所以有了ret2reg。
2024-10-11 22:07:03
376
原创 栈溢出入门0x07 ret2libc3&Hijack GOT
使用patchelf保证ret2libc3的实验结果一致性,先泄露函数地址后得到libc版本和加载基地址之后计算出system和/bin/sh的真实加载地址,从而getshell
2024-10-04 22:28:53
1088
转载 栈溢出入门0x06 ret2libc2
由于没有/bin/sh字符串,所有我们需要自己制造一个出来,利用存在的gts函数,读取一个/bin/sh到bss段的buf2处,再在后面的调用中把buf2作为参数。第一种方法,栈分步应该是这样的,从上到下(低地址到高地址):gets地址system地址(也是gets的返回地址)buf2(是gets的参数)buf2(是system的参数)第二种方法:gets地址pop ebx;ret地址buf2(gets的参数)system地址。
2024-10-03 19:20:24
159
原创 栈溢出入门0x05 ret2libc1
程序中自身就含有system函数和"/bin/sh"字符串程序中自身就有system函数,但是没有"/bin/sh"字符串程序中自身就没有system函数和"/bin/sh"字符串,但给出了libc.so文件程序中自身就没有system函数和"/bin/sh"字符串,并且没有给出libc.so文件一般需要用到ret2libc的时候就是无法注入shellcode了,也没有int 80可用,更没有后门函数了。
2024-10-03 01:20:15
1110
原创 栈溢出入门0x04 ret2sysmulticall
有时候我们发现不光有NX保护,而且没有system(),还没有“/bin/sh”,怎么搞?当然是自己读一个字符进来了。
2024-10-03 00:24:36
1064
原创 栈溢出入门0x02 ret2shellcode
在上一篇博客中我们实现了ret2text。这是非常理想的环境,没有任何保护措施,甚至还有一个后门函数。但是这种好事可不会一直发生,如果没有后门函数怎么办?这次的目标是get shell。
2024-10-02 00:48:18
1011
原创 pwn的某些前置技巧
某些实用小技巧,虽然不能让你直接控制程序执行流,但是在pwn之前的信息搜集比较有用。大多原理比较简单,但是很杂乱,在这里整理一下吧,主要当笔记用,不定时更新。我也是不是安全专业的,学习中,写错了请大家指正。
2024-10-01 00:06:12
433
原创 PWN基础知识
大学的时候想学pwn,但是因为所学专业的原因,想学习但是找不到成体系的教程,也没钱买课。最近有空想整理一下pwn的学习笔记,顺便也当给新人的教程吧。这系列教程面向的人群:已经学习完毕c语言的大学生。鄙人当时c二级考了90多分吧(学校里有个表可以自己查成绩),评级是优,大概这个水平就能读懂本系列博客。为什么学习pwn要在Linux平台上?因为Linux开源,并且有丰富的pwn教程,学习难度低。并且基本原理是一样的,学习完Linux平台转移到Windows上也很简单。
2024-09-30 17:26:19
1113
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人