美文网首页
一步一步学pwn之栈溢出利用(1)

一步一步学pwn之栈溢出利用(1)

作者: yahoo0o0 | 来源:发表于2017-10-11 20:39 被阅读0次
shellcode

1.前提:在函数调用栈上的数据有可执行的权限并且关闭ASLR
2.可用msf生成
3.shellcode是用来打开shell的攻击指令,是软件漏洞中一线段用作攻击载荷的代码,会启动命令行的shell来达到执行命令的操作
4.payload = padding1 +address of shellcode +padding2+shellcode
5.address of shellcode起始的地址,可用若干"/x90"代替
6.可使用mmap开一段可执行的空间,将shellcode放入进去执行
7.使用mprotect将一段空间设置为RWX,将shellcode放进去执行
8.return2shellcode,将shellcode插入栈中,然后return到buf

return2libc

1.含有libc库
2.目标:在内存中确定某个函数的地址,并用其覆盖掉返回地址
2.思路:由于libc的动态链接库中的函数被广泛应用。所以可以利用libc库包含的(一般是system)系统级的函数来获取当前进程的控制权,执行的函数需要参数,例如system("/bin/sh")
3.payload = padding1+address of system + padding2+address of '/bin/sh'
4.ldd可以查看目标程序调用的so库
5.read/write/puts
6.strings -a -t x libc-2.19.so | grep "bin/sh" readelf -a ./libc-2.19.so | grep "system@"

ROP

1.如果想连续执行若干端指令,就需要每个gadget执行完毕可以将控制权交给下一个gadget,所以gadget的最后一步是ret指令
2.payload = padding1+address of gadget1 + address of gadget2+....+address of gadget n
3.对于单个gadget,pop所传输的数据应在gadget之后
4.假定输入溢出数据不收“/x00”字符的影响,所以payload可以直接包含"/x7d/x00/x00/x00"(传给eax的参数125)
5.程序中的一些pop/ret的代码块称之为gadget->用来平衡堆栈
6.绕过ASLR
7.gadget需要是的rdi的值指向“/bin/sh”的地址

Hijack GOT

1.目标:在内存中修改某个函数的地址,使其指向另一个函数
2.思路:修改其他函数地址使其指向system,这样修改之后程序内对该函数的调用就相当于执行system函数
3.程序对外部函数的调用需要在生成可执行文件时,将外部函数链接到程序中,链接的方式有两种,静态链接和动态链接。静态链接得到的文件包含外部函数的全部代码,而动态链接得到的可执行文件并不包含外部函数的代码,而是在运行时将动态链接库加载到内存的某个位置。

相关文章

  • 一步一步学pwn之栈溢出利用(1)

    1.前提:在函数调用栈上的数据有可执行的权限并且关闭ASLR2.可用msf生成3.shellcode是用来打开sh...

  • 一步一步学pwn之栈溢出利用(2)

    1.利用的是_stack_chk_fail中的fortify的报错泄露信息,在栈溢出的时候数组月结写入,导致Can...

  • ROP之linux_64 篇【上】

    前言:本文是参考了一步一步学 ROP 之 Linux_x86 篇这篇文章的。由于老早之前就知道栈溢出和计算溢出点,...

  • 安恒杯12月月赛 (pwn)

    题目链接 messageb0x 教科书般的32位栈溢出(不懂得可以看一步一步学rop 32位),首先rop利用pu...

  • 栈溢出简易指南

    栈 pwn 主题: 基本栈溢出 针对缓存区溢出防护的对策 shellcode 栈溢出的最终目的是执行shellco...

  • [new bugku] pwn

    最简单的pwn nc然后cat flag pwn3 64位栈溢出,程序有后门,栈溢出然后return到后门即可 p...

  • 堆栈基础(一)

    新手入门pwn之栈溢出系列,先学习堆栈的基础,函数调用栈这些. 运行时栈 运行时栈(runtime stack)是...

  • ogeek2019_pwn

    太菜了,只做出了3道pwn babyrop 利用'\x00'绕过strlen的检查,然后栈溢出rop bookma...

  • 2018-10-07 PWN 笔记

    https://zhuanlan.zhihu.com/p/25892385 栈溢出 栈溢出的四种利用形式 1 利用...

  • pwn write_up 合集

    一、bugkuctf pwn4(栈,ROP,system($0)) 图1很容易看出来read函数栈溢出 紧接着就是...

网友评论

      本文标题:一步一步学pwn之栈溢出利用(1)

      本文链接:https://www.haomeiwen.com/subject/aqwwyxtx.html