V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
bl
V2EX  ›  问与答

为什么黑客可以通过一点点程序未处理好的内存空间就可以执行任意程序?

  •  
  •   bl · 2023-02-07 14:43:06 +08:00 · 1298 次点击
    这是一个创建于 687 天前的主题,其中的信息可能已经有所发展或是发生改变。
    9 条回复    2023-02-08 11:20:45 +08:00
    Jooooooooo
        1
    Jooooooooo  
       2023-02-07 14:49:30 +08:00
    可以研究下机器是怎么调用方法

    比如调用之前会把当前执行那一行的地址保存下来, 如果用溢出之类的方法篡改这个地址就可以执行别的东西了
    kxuanobj
        2
    kxuanobj  
       2023-02-07 15:46:11 +08:00
    能放得下一个 loader 就行了。靠这个 loader 继续加载更多信息。

    x86 的 BIOS 只给了 510 个字节,就可以把整个操作系统跑起来。
    bl
        3
    bl  
    OP
       2023-02-07 15:48:43 +08:00
    @Jooooooooo 执行的东西是怎么传上去的,起初只有一点点内存空间
    bl
        4
    bl  
    OP
       2023-02-07 15:49:35 +08:00
    @kxuanobj 加载的东西,存哪里?还是说,有一点点内存空间就可以使用整个硬盘?
    Jooooooooo
        5
    Jooooooooo  
       2023-02-07 15:57:13 +08:00
    @bl 比如啊, 你写一个加法, a+b 要存到一个 32 位的地址里, 但是你构造一个超出长度的返回结果, 不光是把这 32 位占用了, 把旁边的 32 位也用加法的结果覆盖了, 这样你就访问到了本来不应该访问的地址. (当然这只是举个例子
    kxuanobj
        6
    kxuanobj  
       2023-02-07 16:34:00 +08:00
    @bl 拿到任意代码执行权,就啥都能做了。

    比如直接系统调用 /bin/bash 。用 /dev/tcp 打个管道。啥都能扔到系统里跑。
    lambdaq
        7
    lambdaq  
       2023-02-07 16:43:43 +08:00
    这就要聊到冯诺依曼架构的问题了。2333
    shawnsh
        8
    shawnsh  
       2023-02-08 09:13:33 +08:00 via Android
    没什么高级的东西,跟编程没啥关系,都是一些技巧
    bl
        9
    bl  
    OP
       2023-02-08 11:20:45 +08:00
    @shawnsh 怎么可能和编程没有关系,需要找到漏洞再利用漏洞。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1002 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 20:49 · PVG 04:49 · LAX 12:49 · JFK 15:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.