问题标签 [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.

0 投票
2 回答
11574 浏览

python - PwnTools recv() 在输出上直接期望输入

嗨,我有一个问题,我似乎找不到任何解决方案。(也许我只是在用英语正确措辞搜索方面很糟糕)

我正在尝试使用 pwntools 从 python 执行一个二进制文件,并在自己发送一些输入之前完全读取它的输出。

我的二进制文件的输出如下:

我想阅读第一行、第二行和第三行的输出部分(':' 是最后一个字符)。

输出的第三行末尾不包含换行符,并希望用户直接进行输入。但是,无论我尝试什么,我都无法读取第三行开头的输出内容。

我目前试图实现这一目标的方式:

我对标准输入和标准输出有误解吗?第三行的“输入输入:”不是我在输入之前应该能够接收的输出的一部分吗?

提前致谢

0 投票
2 回答
2923 浏览

ctf - pwn 在服务器开发中是什么意思(在 CTF 中)?

Pwn - 我知道这是 CTF 中的一个类别,您可以在其中利用服务器来查找标志。

有一个名为 pwntools 的库,它是一个 CTF 框架,并在 python 中利用开发库。

我不明白的是为什么它被称为“PWN”,它是一个缩写吗?

pwn 也拥有/支配某人,但这个定义适合吗?

谢谢帮忙^^

0 投票
1 回答
2726 浏览

python - python(pwntools) 中是否有任何函数可以用来知道堆栈中环境变量的地址?

我正在尝试进行返回 libc 攻击。问题是我需要堆栈中环境变量的地址作为小工具的参数。我用python尝试了以下代码。但似乎它给出了一个偏移量或其他东西?不确定。

它给出的结果是 0x9d4380。我有点需要像 0x7ffe 这样的堆栈地址.....

CTF 挑战位于需要 ssh 的容器中,因此我可能无法使用 gdb。

0 投票
1 回答
1306 浏览

python - 如何在 python pwntools 中指定进程?

无法在Python 2.7.17pwntools 中设置进程。

源代码:

我试过from pwn import *

那行不通。然后我直接导入流程:

我收到导入错误。如何解决这个问题?

0 投票
1 回答
1729 浏览

gdb - 当我尝试通过 pwntools 使用 gdb 调试程序时,gdb 在 0xXXX 地址处插入断点

当我尝试通过 pwntools 使用 gdb 调试我的程序时,gdb 在 0xc0f 地址处插入一个断点。

这个地址对应于我的程序的开头,没有随机部分。

下面是我的带有 pwntools 的 python 脚本:

还有我的问题的截图:

在此处输入图像描述

0 投票
0 回答
119 浏览

python - 在 python3 中导入 pwntools 时,回车 '\r' 停止工作

我有这个小方法来打印 80 个字符的重叠字符串:

它工作得很好,但如果我 import pwntools,例如 with import pwn,它会停止工作:\r不再打印字符。

0 投票
1 回答
2301 浏览

python - 如何使用 pwntools 正确捕获进程的输出

我目前对如何使用 python3 的 pwntools 库来利用程序感到困惑——主要是将输入发送到易受攻击的程序中。这是我当前的 python 脚本。

我正在尝试利用的程序如下 - 这不是关于如何利用该程序,而是关于使用脚本正确地自动化它。

该过程打开正常。sendlineafter 阻塞,直到它发送该行,因此如果它不匹配它会无限期地等待。但是,它运行良好,因此应该发送输入。由于以下原因,输出应从 recvLine 接收 90 A

puts(buffer) 输出输入的字符串。

但是,返回的只是 b'',这似乎表明易受攻击的程序没有接收输入并返回空字符串。

有谁知道这是什么原因造成的?

0 投票
2 回答
10029 浏览

python-import - pwntools Python 模块在 python2 中不起作用,但在 python3 中起作用

我有一个 python2 脚本,我想使用pwntools python 模块运行,我尝试使用以下命令运行它:

蟒蛇测试.py

但后来我得到:

文件“test.py”,第 3 行,在 from pwn import * ImportError: No module named pwn

但是当我用 python3 尝试它时,它克服了那个错误,但它遇到了其他错误,因为它是一个 python2 脚本。为什么当我使用 python2 运行 pwntools 时它不起作用,并且我可以在不将整个东西移植到 python3 的情况下运行我的脚本吗?

0 投票
2 回答
4360 浏览

c - pwntools 中的 p64() 无法正常工作

我想将输入发送到包含不可打印字符(如“\x90”)的进程。当我尝试像这样发送它时p.sendline(p64(0x414190)),我的程序将它打印回来,返回AA\x90。它将 "\x90" 作为一个字符串,而不是一个字节。有人可以帮我如何发送原始字节吗?

我的程序(容易格式化字符串,我不需要被告知):

0 投票
1 回答
13916 浏览

gdb - 调试 pwntools 打开的程序

我正在尝试为大学课程做一个stackoverflow。我要利用的二进制文件有一个金丝雀,但是,有一种方法可以将该金丝雀泄漏到标准输出。金丝雀当然由一些随机字节组成,所以我不能只从程序输出到标准输出的字符串中读取它们。

出于这个原因,我正在使用 python 和 pwntools,例如p.recv(timeout = 0.01).encode("hex"). (我使用 pwntools 只是因为我不知道以十六进制格式读取输出的另一种方法,如果有更简单的方法,我当然可以使用其他方法)

这或多或少可以按预期工作,我设法编写了经过金丝雀的内存区域。但是,我得到了一个段错误,所以我显然对我造成的 stackoverflow 有一些问题。我需要一种调试方法,例如在提供导致堆栈溢出的输入后查看堆栈。

现在不用多说,实际的问题是:我可以调试我process("./myprog")在 GDB 中使用 pwntools(如 )或其他可以向我显示堆栈内容的程序启动的进程吗?

我已经尝试在 python 中获取 pid 并使用 gdb attach 附加到该 pid,但这不起作用。

注意:我试图利用的二进制文件有 guid 集。不知道这是否重要。