问题标签 [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 投票
1 回答
7258 浏览

python - 无法在 pwntools 中创建进程

我正在尝试使用 python 的 pwntools。我想使用

当我这样做时,我收到以下错误消息:

Traceback(最近一次调用最后):文件“”,第 1 行,在文件“/usr/local/lib/python2.7/dist-packages/pwnlib/tubes/process.py”,第 267 行,在init stdin,stdout ,stderr,master,slave = self._handles(*handles)文件“/usr/local/lib/python2.7/dist-packages/pwnlib/tubes/process.py”,第603行,在_handles tty.setraw(master ) 文件“/usr/lib/python2.7/tty.py”,第 28 行,在 setraw tcsetattr(fd, when, mode) termios.error: (22, 'Invalid argument')

我已经在包含文件 step1 的目录中,并且 step1 是可执行的。有谁知道我为什么会收到此错误。如果有帮助,我将在 Windows 10 上使用 Linux 子系统。

0 投票
1 回答
3821 浏览

python - 未应用 pwntools 模块

安装应用程序

按 Command+Space 并键入 Terminal,然后按 enter/return 键。

在终端应用程序中运行: ruby​​ -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install )" < /dev/null 2> /dev/null

并按回车键。

等待命令完成。运行: brew install pwntools 完成!您现在可以使用 pwntools。

我使用这个链接 ,但它不起作用......

0 投票
3 回答
1449 浏览

python - Pycharm - 在 WSL 上使用 pwntools 和远程解释器

我在 WSL 上的 pycharm 上使用远程解释器(使用本教程对其进行配置:https ://www.jetbrains.com/help/pycharm/using-wsl-as-a-remote-interpreter.html )

我能够成功运行我需要的所有东西,但是当我尝试使用 pwntools ( https://github.com/Gallopsled/pwntools ) 时,我能够在 WSL bash python 解释器上成功导入它,但在 Pycharm 上却没有。

这是我跑的:

在 Pycharm 上它被卡住了,我打断了它,这是异常的痕迹(它卡住的地方):

在我的 WSL bash 上,它运行得很好:

当我查看卡住的代码时(来自异常的跟踪):

在脚本的开头作为全局变量:

我从互联网上了解到这个功能(这个循环是它的一部分)与接管终端有关。也许这与我没有从终端运行的事实有关?以前有人见过这种问题吗?有一些有用的提示吗?

非常感谢!

0 投票
1 回答
197 浏览

python - 增加未知类型的变量

在 Python 2.7 的 pwntools 库中,地址被声明为address = p64(0x7fffffff0000). 我一直在绞尽脑汁想弄清楚如何增加这个地址,尽管我在编辑过程中不断遇到转换错误。我从基本的东西开始,最初:

尽管输出不是以十六进制方式递增,而是以 unicode 方式递增,如下所示:

有谁知道如何增加此变量以使输出显示为:

0 投票
2 回答
9035 浏览

python - pwntools python not importing

After I ran the above command to install pwntools when I go to python and import pwntools it shows the following error.

0 投票
1 回答
5486 浏览

python-3.x - 在 macOS 上安装 pwntools

我正在尝试pwntools在 macOS 上安装。

每当我尝试pip3 install pwntools时,它会暂停一段时间Running setup.py bdist_wheel for capstone ...然后打印Failed building wheel for capstone(我假设“顶点”是一些依赖项),然后是一条长错误消息。这是完整的输出:

我也试过brew install pwntools,它说它已经安装了,但是import pwn在 python 中仍然失败,出现“没有名为 pwn 的模块”错误。我认为这可能是 capstone 中的一个临时错误,但这已经有几周没有起作用了,所以这似乎不太可能。

谢谢,如果有人可以提供帮助。

0 投票
1 回答
4471 浏览

python - LD_preload 用于使用其他版本的 libc,在 pwntools 中不起作用

我想在 pwntools 中使用其他版本的库进行 pwn 研究,但是出现了 EOF 错误。

我试图解决这个问题,更改 ubuntu 版本 3 次(18.04 桌面 -> 14.04 桌面 -> 18.04.0 服务器),重新安装 python 和 pwntools 4 次。目前,版本为 ubuntu 18.04.0 server、Python 2.7.15rc1、pwntools 3.12.2

我尝试在 pwntools 中使用其他版本的库进行 pwn 研究。像这样:

并尝试过

并执行python代码,发生错误我已经将libc的权限设置为chmod 777,但结果是一样的。

我不知道为什么会发生 EOF 错误。但是,由于 3 个不同版本的 ubuntu 给出了相同的错误,我想我错过了安装一些东西。但我不知道我错过了什么!

0 投票
1 回答
172 浏览

c - 在利用期间无法注入有效的指令指针

我试图利用给定的程序,但我不知道我做错了什么。长话短说,我设法注入代码来覆盖 RIP。这意味着我应该能够重定向代码执行,但问题是,我得到了 SIGSEGV。我是否必须以特殊方式设计注入堆栈才能获得 SIGSEGV?

我的游戏计划是利用该功能mainloop并更改返回地址。该函数的堆栈mainloop具有以下值:

所以返回地址存储在0x7fffffffe008,我设法用指向我要执行的代码的地址覆盖了那个值。在这种情况下,地址0x555555554e6e

程序的回溯如下:

如您所见,当我退出时,mainloop我将返回到main,而当我退出 main 时,我会转到一堆 libc 函数,以便程序干净地退出(?)。

那么当我运行我的漏洞代码时会发生什么?这:

你看到的是堆栈。我添加了一些字节,以便您获得更多上下文。但我认为我设法为我的漏洞打到了正确的填充尺寸。我设法更改了第 24 个字节的值。

但是我的 PEDA/GDB 似乎并不将该值视为指令指针,这很奇怪。它似乎将其视为 C 字符串(?)。回溯看起来像这样:

当我退出时,我mainloop在 PEDA/GDB 中得到以下信息:

如果我i f在 GDB 中运行命令,我会得到:

在地址0x0000555555554e6e,程序执行以下 ASM:

所以我似乎有正确的 RIP,但仅此而已。伙计们,这是怎么回事?

0 投票
2 回答
107 浏览

python - 为什么在终端中内联打印转义的十六进制字符和在运行终端的程序中存在差异?

我试图将字符串发送到服务器上运行的另一个应用程序(我无权访问)。该字符串包含空字符。现在我注意到当我在脚本中运行以下代码时,

输出为:abc\x00\x91\x11123。

当我在终端中运行相同的代码时想到:

python -c 'print("abc\x00\x91\x11\x01123")'

我得到输出:abc�123

在我的情况下,这是所需的输出。为什么两个输出不同?在脚本中运行打印功能时如何获得第二个输出?

编辑:我弄清楚是什么导致了这种差异。pwntools 导致了这种行为。但我仍然无法真正弄清楚为什么。以下代码:

结果是

abc\x00\x91\x11123

当我不导入pwn时,结果如预期:abc�123。

0 投票
1 回答
118 浏览

python - 获取终端输出颜色/返回文本颜色

我目前正在尝试自动化一个简单的颜色阅读测试。我用 nc 连接到服务,它给了我一个特定颜色的文本,然后提示用户命名上面的彩色文本。

这看起来像这样: nc 这是你的颜色:颜色!(例如绿色)

> 绿色

好的!

这是你的颜色:颜色!(例如蓝色)

> 红色

错误!不好!

退出...

我当前的代码看起来像这样,但我不知道如何实现它。

该解决方案应使其无休止地运行,而无需用户提示任何内容。