问题标签 [exploit]
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.
windows - bash 'printf' 等同于命令提示符?
我希望在 Windows 的命令提示符中将一些字符串输入通过管道传输到一个小型 C 程序。在 bash 我可以使用
本质上,我需要一些东西来在命令提示符中转义那些十六进制数字。
printf
命令提示符/powershell 中是否有等效或类似的命令?
谢谢
c - 基于堆栈的缓冲区溢出攻击中修改后的返回地址如何近似?
我了解典型的基于堆栈的缓冲区溢出攻击有效负载如下所示:
(返回地址) (返回地址) ... (返回地址) (返回地址) (返回地址) (返回地址) (NOP) (NOP) (NOP) (NOP) ... (NOP) (NOP) (NOP) ) (NOP) (外壳代码)
我也明白 shellcode 的成功执行取决于几件事:
- 有效载荷的重复返回地址部分必须覆盖该堆栈帧的返回指针
- 该返回地址必须是 NOP 幻灯片某些部分的地址(或 shellcode 的开头)
我不明白的是,使用这种技术的恶意软件总能把这两件事做好。在我看来,为了制作有效的有效载荷,攻击者必须知道目标缓冲区的大致地址及其与返回地址的大致距离。
这两个通常是确定性的吗?例如,如果攻击者在他的机器上运行之前进行了几次反复试验,那么相同的有效负载是否可以在具有完全相同二进制文件的所有其他机器上运行?
c - C代码如何更改代码中的返回地址?
我刚刚写了一个C代码,如下:
请建议我如何跳过行printf("\nx is 1\n"); . 早些时候我得到的线索是修改ret变量,它是函数func的返回地址。
您能否建议我如何更改上述程序中的返回地址,以便printf("\nx is 1\n"); 被跳过。
我发布了这个问题,因为我不知道如何更改退货地址。
如果你能帮助我,那就太好了。
谢谢
security - 金丝雀是否可以防止 return-into-libc 和面向返回的编程攻击?
如果使用金丝雀,我试图了解是否/如何返回到 libc 和面向返回的编程漏洞。
金丝雀将被放置在返回值和要溢出的缓冲区之间的堆栈上,并且需要被覆盖才能将返回值更改为库函数或计算的位置。Canaries 自 1997 年就出现了 (StackGuard),而 ROP 是 2007 年首次引入的技术 (Shacham)。
金丝雀是否使这些类型的攻击成为不可能?
exploit - 面向返回的编程编译器
我试图在较低级别更好地理解我的计算机,除了编写堆栈缓冲区溢出漏洞之外还有什么更好的方法?我最近遇到了ROP。我阅读了论文http://cseweb.ucsd.edu/~hovav/talks/blackhat08.html,它提到有一个 ROB 代码的编译器。linux(64位)的这种编译器的名称是什么?
谢谢,康斯坦丁
security - Shellcode作为以root身份执行的缓冲区溢出(或其他)漏洞利用的有效负载?
当我使用诸如此处提供的 shellcode 作为某些易受攻击程序的有效负载时,shell 如何以 root 身份执行?我在问特权如何提升到root?shellcode 似乎没有调用setuid
或更改用户的任何内容。
* http://www.tenouk.com/Bufferoverflowc/Bufferoverflow5.html
c - 这个程序在做什么?
那些memcpy
和memset
之前execve
做什么?它如何影响程序proc
?
bss2的更新代码
更新
现在似乎问题归结为环境变量的位置?
python - Python 中的漏洞利用 - 操作十六进制字符串
我对 python 很陌生,并试图移植一个我为堆栈溢出编写的简单漏洞(只是一个 nop 雪橇、shell 代码和返回地址)。这不是出于邪恶目的,而是为了在大学进行安全讲座。
给定一个十六进制字符串(deadbeef),最好的方法是:
- 将其表示为一系列字节
- 添加或减去一个值
- 颠倒顺序(对于 x86 内存布局,即 efbeadde)
任何有关在 python 中编写漏洞利用的常见任务的提示和技巧也非常感谢。
c - Buffer Overflow - why some ascii's work and not others
I'm sorry if this question is stupid or has been asked, but I couldn't find it.
I have a program that I was attempting to use a buffer over flow. It is a simple program that uses getchar() to retrieve the input from the user. The buffer is set to size 12. I can get the program to crash by typing >12 x's or using >12 \x78's, but it won't seg fault if I type in hundreds of A's or \x41's.
Any help or pointing in the right direction would be greatly appreciated.
perl - Perl CGI 被黑了?但我做的一切都是正确的
我刚刚注意到我的一个 Web 目录中有一些奇怪的 PHP 文件。它们原来是垃圾邮件发送者放置的漏洞利用文件。
他们从 2006 年就开始了,那时我正在使用我的 CGI 脚本进行一场备受瞩目的捐赠活动。并且文件被放置在脚本的可写目录中,所以我怀疑我的脚本可能已被某种方式利用。
但是我正在使用 Perl “污点检查”、严格等,而且我从不将查询数据传递给 shell(它从不调用 shell!)或使用查询数据为 OPEN 生成文件路径......我只我直接在脚本中指定的 OPEN 文件。我确实将查询数据作为文件内容传递到写入文件中,但据我所知,这并不危险。
我盯着这些脚本看,什么也看不到,而且我研究了所有标准的 Perl CGI 漏洞。当然,他们可能以某种方式获得了我的主机帐户的密码,但这些脚本被放置在我的 CGI 脚本数据目录中的事实让我怀疑该脚本。(此外,他们“以某种方式”获取我的密码是一个更可怕的解释。)而且,大约在那个时候,我的日志显示了许多“警告,IPN 从非 PayPal 地址收到”消息,这些 IP 来自俄罗斯。所以似乎有人至少试图破解这些脚本。
涉及两个脚本,我将它们粘贴在下面。有人看到任何可以被利用来写入意外文件的东西吗?
这是第一个脚本(用于接收 PayPal IPN 和跟踪捐款,以及跟踪哪个网站产生的捐款最多):
而且,这里有一些冗余(抱歉......完整性?),但这是第二个脚本(用于生成人们可以添加到自己网站的网站 HTML 按钮):