首页
论坛
课程
招聘

分享:
漏洞分析

零基础入门PWN

发布时间: 2020-2-15
最后修改: 2020-4-3
作者: Roger
阅读: 2148
难度: 初级
469    100%    299
学生数    好评度    价格
购买后可查看所有课程!

上一节 :
下一节 :
章节评论 (8)
Sunny灬 2020-3-9
 举报
老师,请问下:Dump  of  assembler  code  for  function  func:
      0x08048454  <+0>:        push      ebp
      0x08048455  <+1>:        mov        ebp,esp
      0x08048457  <+3>:        sub        esp,0x28
      0x0804845a  <+6>:        sub        esp,0x4
      0x0804845d  <+9>:        push      0x50
      0x0804845f  <+11>:        lea        eax,[ebp-0x28]
      0x08048462  <+14>:        push      eax
      0x08048463  <+15>:        push      0x0
      0x08048465  <+17>:        call      0x8048300  <read@plt>
      0x0804846a  <+22>:        add        esp,0x10
      0x0804846d  <+25>:        nop
      0x0804846e  <+26>:        leave   
      0x0804846f  <+27>:        ret       
End  of  assembler  dump.
按照上面的汇编代码,按您视频中的方法的话我编写exp中的offset应该是0x28+0x4+0x4,但是这样exp不对无法getshell,将offset改为0x28+0x4就可以了,请问这是为什么呢?
@Roger
【讲师回复】 你可能理解错了(或者是我视频口误?),你看我给出的文档,偏移是0X28+4,而返回地址覆盖的位置是从0x28+4开始,往后四个字节,一直到0x28+4+4结束
2020-3-10
Sunny灬 2020-3-10
 举报
老师,您的文档和视频中func的汇编代码是sub  esp,0x24和sub  esp,0x4,然后计算offset是0x24+0x4+0x4=0x28+0x4,但是我电脑编译完之后的是这样:            0x08048457    <+3>:                sub                esp,0x28
  0x0804845a    <+6>:                sub                esp,0x4
按老师您的算法的话我这边开辟的缓冲区应该是0x28+0x4,然后offset就应该是0x28+0x4+0x4,但是这样并不能getshell,难道是我的环境的问题吗,跟老师生成的这个不一样。。求解
@Roger
【讲师回复】 应该是你的gcc版本和我的不一样,编译出来的代码会有差别,但是你只要弄清楚返回地址的偏移就可以了,去stack空间数一下,你的汇编代码和我的不一样,所以exp也要做相应的修改
2020-3-10
Sunny灬 2020-3-10
 举报
好的,谢谢老师,另外问下老师您的gcc版本是多少。。
@Roger
【讲师回复】 我使用的是ubuntu-18.04.3-desktop-amd64这个镜像默认的gcc版本,你可以去官网下载,我给你提供一个百度网盘的镜像下载链接:https://www.xuenixiang.com/thread-1858-1-1.html
2020-3-10
Sunny灬 2020-3-10
 举报
好的,谢谢老师  @Roger
【讲师回复】 不客气
2020-3-10
bukeyong 2020-5-22
 举报
@Roger

$  cd  ..
[*]  Process  './read'  stopped  with  exit  code  -11  (SIGSEGV)  (pid  4870)
[*]  Got  EOF  while  sending  in  interactive

为什么我得到的结果是这样的?是失败了吗?那几个保护机制都已经关了。
【讲师回复】 是root权限吗?
2020-5-23
bukeyong 2020-5-23
 举报
@Roger
$    whoami
[*]    Process    './read'    stopped    with    exit    code    -11    (SIGSEGV)    (pid    5453)
[*]    Got    EOF    while    sending    in    interactive
root@ubuntu:/home/desheng/Desktop/pwn#    whoami
root

无论输入什么结果都是那两行,然后就回到运行程序前的状态了。
【讲师回复】 你的系统是ubuntu18.04吗?
2020-5-23
bukeyong 2020-5-23
 举报
@Roger
desheng@ubuntu:~$  lsb_release  -a
No  LSB  modules  are  available.
Distributor  ID:        Ubuntu
Description:        Ubuntu  18.04.4  LTS
Release:        18.04
Codename:        bionic
是的
【讲师回复】 你百度一下这个问题,如果找不到答案,就重头再安装一遍试试,我这边没遇到这个问题
2020-5-23
bukeyong 2020-5-23
 举报
@Roger
  不好意思,刚发现exp.py里的偏移量offset写错了,我写成了0x28.。。。。。。
【讲师回复】 解决了就好,这么说的话就很可能是覆盖了系统shell的其他变量导致的
2020-5-24
沪ICP备16048531号-1
沪公网安备 31011502006611号