问题标签 [pwntools]
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.
assembly - 为什么buf的地址是0x12而不是10?
我的代码如下:
我编译代码并使用ida pro打开二进制文件(gcc版本为5.4.0,操作系统为ubuntu 16.04,编译命令为“gcc -m32 -no-pie -fno-stack-protector stack_overflow.c - o stack_overflow "),我发现反汇编代码显示缓冲区s的地址是ebp - 12h,我只是想知道为什么不是ebp - 10?
myread()的反汇编代码如下:
myread()的栈如下,好像和栈保护机制无关
virtual-machine - 如何使用 pwndbg 显示块信息
Linux:Ubuntu 16.04 VMware 15
我目前正在学习如何使用 pwndbg。当我尝试使用命令 heap 显示块详细信息时。它显示了一个仅显示地址和大小的分配块这是我进行堆检查时显示的内容,而不是显示 prev_size、size、fd、bk、fd_nextsize、bk_nextsize这就是我想要显示的内容
这是我用来安装 pwndbg 及其依赖项的脚本
这是我用来学习的c文件
python-2.7 - 如果程序使用 pwntools 退出/崩溃,如何在 python 脚本中继续?
当程序崩溃/退出时,我想继续 python 脚本做事。但它不起作用。例如:
但是当程序proc
退出/崩溃时,下面的部分p.interactive()
不会被执行。有人可以帮忙吗?
c - 如何解决 PWN 挑战?
我对 PWN 很陌生,对如何解决 PWN 问题知之甚少。最近,我遇到了一个夺旗 (CTF) 挑战,在那里我找到了一个 pwn 来找出旗帜。我正在使用 Linux-Ubuntu -16.04。
下面的程序是在某个远程机器上运行的 PWN 程序,我可以在其中“netcat”并发送输入字符串。根据我目前对问题的理解,在 strcpy() 期间,下面的代码(第 9 行)会发生缓冲区溢出,那里会发生内存覆盖。所以,这就是我认为的脆弱点。不知何故,我需要利用该漏洞,以便可以从远程机器读取“标志”。
复制以下代码:
根据在线教程,我尝试了一些基本步骤,例如阅读 ELF、反汇编代码,但我不确定如何继续和解决这个问题。
这是相同的汇编代码:
如果有人可以帮助/指导我解决问题以及我现在需要做什么,我将非常感激,因为这将帮助我学习这种新型挑战。提前致谢。
python-3.x - OSError: [Errno 24] 多线程 pwntools 时
我正在创建一个脚本,它将启动一些线程,并在二进制文件上运行输入。用法是python3 script.py binary input.txt
。这是遇到此错误的可重现段:
运行 5 秒左右后,我遇到了这个错误,以及错误:out of pty devices
. 我在 ubuntu 20.04 上运行。
python - 导入 pwn 在 PyCharm 中崩溃,但在从终端运行时有效
当我尝试import pwn
在 PyCharm 中运行该行时,它会崩溃并显示以下错误消息:
但是,当我从终端执行文件时,它运行良好。
我试图找到类似的问题,但似乎其他人有错误ImportError: cannot import name ENUM_P_TYPE
而不是我的错误。
我在 macOS 10.15.4 上运行它。
python - 将 Python 程序的交互控制权交给用户
我需要我的 Python 程序来做一些事情,并在某个时间点将控制权交给用户(比如运行时的普通 Python shellpython3
或其他),以便他可以通过命令行与之交互。我正在考虑使用pwntools
'interactive()
方法,但我不确定如何将它用于本地程序而不是远程程序。
我该怎么做?
任何想法都被接受,如果pwntools
不需要,甚至更好。
c - 为什么要使用 cat 打开交互式 shell?
(没有下载链接再问)
问题描述
Nana 告诉我缓冲区溢出是最常见的软件漏洞之一。真的吗?
美国银行
鲍勃
解决方案
https://0xrick.github.io/pwn/bof/
我知道我们必须提供 52 个垃圾字符和 cafebabe 才能溢出缓冲区。但是当我只将它作为输入传递时,我没有得到交互式外壳。只有当我也传入 cat 命令时。为什么需要猫??
- -编辑 - -
我忘了提到这是在服务器上运行的,我使用nc pwnable.kr 9000
. 我将输入作为python -c 'print("A"*52 + "\xbe\xba\xfe\xca")' | nc pwnable.kr 9000
. 据说正确答案是(python -c 'print("A"*52 + "\xbe\xba\xfe\xca")'; cat) | nc pwnable.kr 9000
python-3.x - 如何在小端打包十六进制后删除 b 或字节对象前缀?
我目前使用pwnlibstruct.pack()
或p32()
从 pwnlib 打包十六进制数,我总是得到字节对象输出。
b'\xde\xad\xbe\xef'
我试过str.decode('utf-8')
了,但在某些情况下有错误输出。有没有办法解码这个?我正在使用 python3 和 pwntools 4.3
c - 在缓冲区溢出时获取 SIGSEV
我正在尝试在启用所有保护(即 ASLR、canary、PIE、NX、Full RelRO - 禁用 Fortify)的简单 x64 C 二进制文件上创建缓冲区溢出。我正在使用(更新的)x64 Kali Linux 2020.3 发行版(在 vmware 中使用来自官方攻击性安全网站的 vmware 映像)。我正在以 root 身份编译程序,并且我正在启用 SUID 位以从非特权帐户访问具有 root 权限的程序。易受攻击的程序 ( example5.c
) 的代码如下:
并编译我正在使用的程序Makefile
:
所以,我打开我的终端并输入:
然后我使用我在 python 3.8.6 中创建的利用 pwntools 来泄漏金丝雀和 libc ( libc-2.31.so
) 的基地址以执行返回 libc 攻击(使用 2 个小工具)。漏洞利用如下(exploit5.py
):
尽管这些值已正确泄漏,但我得到如下分段错误: