zoukankan      html  css  js  c++  java
  • pwnable.kr-uaf-witeup

    没错,这道题超纲了,代码调试能力很差很差。

    一些相关小笔记。

    UAF是在内存释放后,原指针仍然指向此内存,可通过其他填充操作将此内存值设为指定的值,使得指针指向特定值。

    分析程序。本程序中,可输入1、2、3,分别表示显示子类内容、填充新内容、释放内存;有虚函数,虚函数的所有位置表即虚函数表位于实例的头端,父类的虚函数give_shell()表示进入交互式命令行,可重写子类的虚函数信息使得显示子类信息时通过指针执行give_shell()函数,从而获得足够高的权限,获得flag的信息;重写子类虚函数信息的方法是通过堆释放填充同大小同一堆特性,在指针指向的内存重新填充地址,使得它指向give_shell()方法,这样自然能进入交互式命令行了哦。

    分析程序可知,堆大小为24,父类give_shell()地址为0x401590,因为显示子类第二个虚函数introduce()内容,所以将子类的虚函数表头地址即子类实例地址设置0x401588,这样执行第二个虚函数时其实是执行give_shell()。

  • 相关阅读:
    css--之初级
    html之2
    前端之Html初学
    前端之http协议
    Jmeter连接SqlServer数据库进行压力测试
    web基础知识学习点
    monkeyrunner下登录app
    monkeyrunner下安装app,运行主页
    monkey测试小记
    windows下MonkeyRunner环境搭建
  • 原文地址:https://www.cnblogs.com/HYWZ36/p/10908623.html
Copyright © 2011-2022 走看看