pwntools发送eof信号
做题目遇到的两种 eof 信号需求情况:
- 发送 eof 之后,后续不需要继续输入(vnctf-White-Give-Flag)
- 发送 eof 之后,后续还需要继续输入(mtctf-blind)
eof 发送后继续输入
不用 mtctf-blind 做例子,因为利用 eof 绕过第一层之后,由于题目其他方面而无法 getshell ,用一个 demo 例子(来源)代替:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>int main(void) {char buf[24];while(1) {if(read(0,buf,16)==0) {break;}}read(0,buf,1000);return 0;
}
题目要求第一个 read 返回值为 0 ,也就是输入字符串长度为 0 ,才能到达下面的 read 栈溢出漏洞。eof 发送脚本如下:
from pwn import *
import tty
p = process("./eof_1",stdin=PTY,raw=False)
p.send(chr(tty.CEOF))
p.clean()
发送完 eof 之后,输入通道没有关闭,依然可以输入。
参考资料
- https://github.com/Gallopsled/pwntools/issues/985
- https://stackoverflow.com/questions/66011026/how-to-send-an-eof-to-a-process-server-in-pwntools
- https://docs.pwntools.com/en/stable/tubes.html#pwnlib.tubes.tube.tube.shutdown
eof 发送后不在输入
直接看 vnctf-White-Give-Flag 就行,输入 eof 目的是让返回值为 -1
p = remote(xxxx,xx)
p.sock.shutdown(socket.SHUT_RW)
# or
# p.shutdown_raw('send')
参考资料
- https://paper.seebug.org/444/
与read返回值关系
特殊情况就是让返回值等于 0 或者返回值小于 0 两种,两种情况分别对应:
- 返回值等于 0 ==> eof 发送后继续输入
- 返回值小于 0 ==> eof 发送后不在输入
pwntools发送eof信号相关推荐
- linux组合键 发送指定信号_linux trap脚本信号捕获命令的使用
linux的信号,可以用于进程间通信,还可以用于系统向进程发送命令.比如当系统关机的时候,需要通知每一个进程做善后工作,系统会对每个进程发送SIGTERM信号.进程在收到信号之后就会做一些清理动作.你 ...
- android手机红外代码HAL,手机红外遥控器发送红外信号到STM32【HAL库】
现在大部分手机上都有红外遥控功能,而且好像大部分信号STM32都是可以收到的.现在就使用STM32发送红外信号,由STM32上的红外接收器接收后执行不同的操作.以下是注意事项: 在标准库中有 EXT ...
- android自动发送dtmf,Android通话中发送DTMF信号
由于android中sdk没有提供相关功能,所以在Android中如果要自定义拨号盘发送DTMF信号,需要通过反射调用相关方法,并且需要系统签名还有运行在phone进程中,同时需要phone进程的ui ...
- ARM 裸机程序学习 03 - 发送SOS信号(汇编 + C)
之前的两个示例程序都是完全由汇编编写的,而这次的示例程序由汇编和C语言写成并编译. 汇编自有汇编的优点,比如你可以非常清楚地知道CPU在执行每条指令时到底做了什么,怎么做的,数据到底保存在哪儿等等,但 ...
- 组合键 发送指定信号_Django signal 信号机制的使用
Django中提供了"信号调度",用于在框架执行操作时解耦,当某些动作发生的时候,系统会根据信号定义的函数执行相应的操作 一.Django中内置的 signal 类型主要包含以下几 ...
- 如何利用python dbus来发送一个信号
http://blog.csdn.net/sahusoft/article/details/5931905 简介 dbus用于进程间通信,可以降低不同程序间的耦合性,dbus的原理同分布式计算很象,其 ...
- ping端口怎么ping_英雄联盟手游ping信号怎么发送 ping信号发送方法介绍_游戏攻略...
伙伴不知道英雄联盟手游ping信号是什么意思?怎么发,在英雄联盟手游中每个信号都是至关重要的,作为一个召唤师不会发信号,那可是一件大事,下面小编就给大家带来<英雄联盟手游>ping信号发送 ...
- qlistwidget窗口隐藏会发送什么信号_为什么wifi连的人越多,就越慢?
生活中,我们经常会遇到wifi连的人越多,网就会变慢的情形.下面小速带您一起来探寻背后的原因. △:有线网络,一根网线上用的人多了怎么避免冲突? CSMA/CD应用在OSI 的数据链路层,它的工作原理 ...
- java 发送信号_java – 在Windows中发送任意信号?
如果你想要的是明确地/编程性地杀死任何类型的程序/进程,在SysInternals的pstools中有一个名为"pskill"的小工具,就像Unix"kill" ...
最新文章
- R语言生成仿真的3D高斯簇数据集、使用scale函数进行数据缩放、并使用KMeans进行聚类分析、数据反向缩放并比较聚类生成的中心和实际数据的中心的差异、预测新的数据所属的聚类簇
- Android用户界面开发(2):ListView
- linux命令老是忘记,Linux可能会忘记的命令整理
- HTML 表格中的行合并与列合并
- RUNOOB python练习题12 找素数问题
- SPP-net论文笔记
- 手把手教你最好用的数据分析方法,会用的没几个
- RDP报表工具数据字典配置及使用说明
- 英伟达驱动更新记录_英伟达更新驱动最好的方式 - 卡饭网
- 计算机在网络通信方面的应用,分析计算机技术在通信中的应用
- matlab x轴特殊符号,matlab中的特殊符号
- Android双目摄像头(带人脸检测)正确调用姿势
- 2018 06 01 第一次博客 自然语言处理
- 山东职业学院计算机专业,山东职业学院最好的专业是什么(10大热门专业排名)...
- 【OpenCV-图像处理】用sift特征点算法和ransac算法进行多幅图像的拼接
- clio7.0测试软件如何安装,clio珂莱欧气垫怎么换替换装?4个步骤轻松安装
- 电脑报2013年第4期
- linux_驱动_V4l2层_camera_应用层调用流程_MIPI协议包格式简介
- 为什么汽车的中控屏不能用平板代替?
- redux-thunk 源码解读
热门文章
- 央企招聘:新华社2023年校园招聘公告
- 数据结构——二路归并排序和基数排序
- 【安全科普】AD域安全协议(三)LDAP
- 【竞赛篇-经费奖金退税】怎么把国创(大创)经费和学校奖金交的税退出来?
- 【安装版】Win8.1专业版系统资源_ISO_ESD格式镜像
- 政考网:公务员考试常识100题,你能答对几个?
- 计科专业c语言重修,计算中心
- Linux下安装libsodium,启用ss的chacha20高级加密
- MATLAB教程三:MATLAB程序流程控制
- 华为防火墙做单臂路由_华为-VLAN间路由:VLANIF+单臂路由(子接口)-释然