问题标签 [shellcode]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 堆栈粉碎尝试给出段错误
我正在尝试从Smashing the Stack for Fun and Profit in C 中举一个例子,但我有点卡住了,下面是代码(我有一个 64 位机器和 Ubuntu 64 位):
上面的代码工作正常,返回x=1
行时没有执行,但我无法理解背后的逻辑ret = buffer + 17;
,不应该是ret = buffer + 16;
8 字节用于缓冲区,8 字节用于堆栈上保存的基指针。
其次,我的理解是char buffer[1]
占用 8 个字节(由于 64 位拱),如果我增加这个缓冲区说buffer[2]
,同样的代码应该可以正常工作,但是这没有发生,它开始给出 seg 错误。
问候,努曼
exploit - shellcode 被 \x20 截断
为什么我的 shellcode 在\x20
操作码之后被截断,当它被字符串复制到第二个易受攻击的程序上时?
c - 谁能向我解释这段代码?
警告:这是一个漏洞。不要执行此代码。
谁能给我一个更好的解释?
c - 我有这个代码.... 道德黑客
我正在关注这本关于道德黑客的电子书,我到达了 Linux Exploit Chapter,这是 Aleph 的 1 代码的代码。
我给这个超级用户权限,
作为超级用户,然后回到普通用户
但是当我运行时,./shellcode
我应该是 root 用户,但我仍然是 normal_user,所以有什么帮助吗?顺便说一句,我正在研究 BT4-Final,我关闭了 ASLR,并在 VMWare 中运行 BT4 ......
c - 测试一个shellcode
我有这段代码来测试一个shellcode,但我不明白,谁能给我解释一下?
忘记汇编shellcode,我想了解的是C代码,
我的意思是一切,什么是空的()
,请像向初学者解释一样解释它。
security - 用于简单堆栈溢出的 Shellcode:带有 shell 的被利用程序在 execve("/bin/sh") 之后直接终止
我在 Linux (amd64) 上玩过缓冲区溢出,并尝试利用一个简单的程序,但它失败了。我禁用了安全功能(使用 sysctl -w kernel.randomize_va_space=0 和 bios 中的 nx 位进行地址空间布局随机化)。它跳转到堆栈并执行 shellcode,但它不启动 shell。execve 系统调用成功,但之后它就终止了。知道有什么问题吗?独立运行 shellcode 就可以了。
额外的问题:为什么我需要在调用 printf 之前将 rax 设置为零?(见代码中的注释)
易受攻击的文件buffer.s:
shellcode.s
利用.py
编译:
开始于:
使用 gdb 进行调试:
c - 书籍和 shellcode 示例
我读过“剥削的艺术”和“灰帽黑客”。这两本书都是为 x86 系统编写的示例。我有一台 centrino 笔记本电脑和一台 amd64 pc。我无法为基于堆栈的溢出制作工作示例。
c - Shellcode 和格式字符串漏洞?
在我的工作中,我们有很多机器运行 RH 9、RH Enterprise 3 和一些较旧的 Linux 口味。当我读到“格式字符串漏洞”和“shellcode”时,我想知道如何查看 Linux 是否容易受到这类攻击(不运行攻击本身)......
感谢帮助!
buffer - 故意缓冲区溢出漏洞利用程序
我正在尝试为我的一个 comp sci 课程找出这个问题,我已经利用了所有资源,但仍然遇到问题,如果有人可以提供一些见解,我将不胜感激。
我有这个“目标”,我需要使用缓冲区溢出漏洞执行 execve(“/bin/sh”)。在buf[128]的溢出中,当执行不安全的命令strcpy时,一个指向缓冲区的指针出现在系统期望找到返回地址的位置。
目标.c
漏洞利用.c
外壳代码.h
我知道我需要用超过 128 个字节填充 argv[1],超过 128 个字节是返回地址,它应该指向缓冲区,以便在其中执行 /bin/sh。到目前为止是正确的吗?有人可以提供下一步吗?
非常感谢您的帮助。