自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 ret2dlresolve以及srop

linux在加载ELF可执行文件的时候,包含的动态链接文件里的符号,并不会直接把这些符号的实际地址加载到内存中,而是会使用PLT + GOT 表来实现延迟绑定,简单说就是在第一次用到动态链接文件里的符号的时候才会去寻找符号的实际位置然后保存下来,下次使用的时候就可以直接访问了。所以我们就会想到用srop去解题,首先需要伪造栈帧信息,通过执行sigreturn(也就是syscall系统调用),还原出我们伪造的栈帧信息,来达到控制寄存器的目的 ,上面的网站有详细的讲解呦!这里我们可以直接通过脚本去获取权限。

2024-02-22 19:15:48 532 3

原创 栈上格式化字符串漏洞修改stack_checkfail

这一行pay=(b'%7$saaaa'+p64(elf.got['printf'])).ljust(0x100,b'\x00')后面的.ljust(0x100,b'\x00')是因为读入的字节较少,不足以覆盖canary的数值,所以在任意读入较大的数值就行。我们可以利用格式化字符串漏洞去修改stack_chk_fail函数的got表使得程序继续进行,在这里,我们将stack_chk_fail函数改成fmt函数,然后通过格式化字符串漏洞去泄露libc基址。checksec指令查看。用64位IDA打开分析。

2024-02-21 19:22:56 226

原创 简单格式化字符串漏洞

经过分析之后,我们可以通过格式化字符串漏洞将puts函数的got表改成main函数,这样的话,当程序执行puts函数的时候实际上是执行main函数,就会再次利用read函数以及printf函数。接下来我们先寻找函数的偏移(指令为:AAAA%p, %p, %p, %p, %p, %p, %p, %p, %p, %p, %p, %p, %p, %p, %p, %p, %p, %p)通过调试会发现偏移为11,此时打印出来的就为canary的地址,然后我们发送v4的时候将canary发送过去就会获取后门。

2024-02-19 13:22:58 509 1

原创 canary爆破、pie保护(格式化字符串漏洞)

canary两种解题方式:1.爆破canary2.如果存在字符串格式化漏洞可以输出泄露canary的地址并利用栈溢出覆盖canary的地址返回到system地址从而达到绕过。

2024-01-29 00:11:44 311

原创 CTF PWN简单栈溢出

(mov esp,ebp)意思是先将ebp赋给esp,此时esp与ebp位于同一个地址,可以把它们现在指向的那个地址,既可以当成栈顶又可以当成是栈底。因为填充的数据后面跟的就是栈,所以它会将栈地址顺带打印出来,接下来我们继续编写脚本。到这里,我们的第一次输入就算完成了,在第二次输入的时候就能去构造payload。(此时栈顶的内容也就是ebp的内容,也就是说现在把ebp的内容赋给了esp)在这里我们发现有system函数,我们可以利用system函数的plt表。我们会发现溢出字节较少,考虑用栈溢出解题。

2024-01-25 22:11:56 361 1

原创 CTF中的pwn基础题

mprotect 函数用于设置一块内存的保护权限(将从 start 开始、长度为 len 的内存的保护属性修改为 prot 指定的值)elf跟libc是两个单独的文件,elf里的函数想要执行,就得先进入plt表,然后在进入got,got表里的是函数的真实地址。通过观察IDA中左边的函数,发现没有后门函数,也没有system函数考虑使用ret2libc解题。通过调试发现,main函数与后门函数的地址相差一个字节,所以将09打包成一个字节。发现有栈溢出且溢出了一个字节,shift+f12查看发现有后门函数。

2024-01-23 22:54:31 728

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除