Wargames与bash知识12

Wargames与bash知识12

Bandit20

关卡提示:
主目录中有一个setuid二进制文件,它执行以下操作:它在您指定为命令行参数的端口上连接到localhost。然后,它从连接中读取一行文本,并将其与前一级别的密码(bandit20)进行比较。如果密码正确,它将传输下一级别(bandit21)的密码。
注意:试着连接到您自己的网络守护程序,看看它是否如您所想的那样工作

推荐命令:
ssh, nc, cat, bash, screen, tmux, Unix ‘job control’ (bg, fg, jobs, &, CTRL-Z, …)

有没有觉得的这个关卡有点眼熟:某个关卡我们使用nc给一个端口(好像是30000)发送一个字符串,然后服务器给回复一个密码。这个关卡是展现服务器端是如何实现的吧,不过细究的还有有很大的区别:那个关卡回复是自动的,但在这个关卡我们需要手动运行一个程序才能实现。
Nc的命令前面已经谈过了,就不再复述。
解决这个问题需要使用两个终端,咱们继续使用windows的wls2子系统unbuntu来做演示。

使用ssh登录服务器
g

yj@guyanjun:~$ ssh -l bandit20 -p 2220 bandit.labs.overthewire.org
The authenticity of host '[bandit.labs.overthewire.org]:2220 ([51.20.13.48]:2220)' can't be established.
ECDSA key fingerprint is SHA256:IJ7FrX0mKSSHTJ63ezxjqtnOE0Hg116Aq+v5mN0+HdE.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[bandit.labs.overthewire.org]:2220,[51.20.13.48]:2220' (ECDSA) to the list of known hosts._                     _ _ _| |__   __ _ _ __   __| (_) |_| '_ \ / _` | '_ \ / _` | | __|| |_) | (_| | | | | (_| | | |_|_.__/ \__,_|_| |_|\__,_|_|\__|This is an OverTheWire game server.More information on http://www.overthewire.org/wargames………

运行命令获得相关信息:

bandit20@bandit:~$ ./suconnect
Usage: ./suconnect <portnumber>
This program will connect to the given port on localhost using TCP. If it receives the correct password from the other side, the next password is transmitted back.

使用左边的终端向端口11000发送字符串(端口可以自行指定,注意不要使用知名端口),使用右边的终端运行./suconnect 11000命令获得所需密码

在这里插入图片描述

现在尝试发送一个错误是字符串看看会有什么报错

在这里插入图片描述

如果不喜欢使用的两个终端,可以尝试将nc放入后台

b

andit20@bandit:~$ nc -l 11000 <<< "VxCazJaVykI6W36BkBU0mJTCM8rR95XT" &
[1] 383771
bandit20@bandit:~$ ./suconnect 11000
Read: VxCazJaVykI6W36BkBU0mJTCM8rR95XT
Password matches, sending next password
NvEJF7oVjkddltPSrdKEFOllh9V1IBcq
[1]+  Done                    nc -l 11000 <<< "VxCazJaVykI6W36BkBU0mJTCM8rR95XT"
bandit20@bandit:~$

将linux命令放入后台的方法很简单,直接在命令结尾添加一个 & 符号。为演示效果,我使用while做了一个死循环。

gyj@guyanjun:~$ while true ; do sleep 200; done &
[1] 693

返回的信息:1 是任务后 693是进程号
可以使用jobs 查看后台运行的命令

gyj@guyanjun:~$ jobs
[1]+  运行中               while true; dosleep 200;
done &

可以使用kill %1或者 kill 693 “杀死”后台进程

gyj@guyanjun:~$ kill %1
gyj@guyanjun:~$ jobs
[1]+  已终止               while true; dosleep 200;
done

使用fg 任务号将命令放回前台

gyj@guyanjun:~$ fg
while true; dosleep 200;
done

使用crtl-z 将命令暂停且放入后台

gyj@guyanjun:~$ fg
while true; dosleep 200;
done
^Z
[1]+  已停止               while true; dosleep 200;
done

使用bg %1 恢复后台暂停的命令,使其在后台运行

gyj@guyanjun:~$ bg %1
[1]+ while true; dosleep 200;
done &

这个技巧可以解决命令忘记放入后台的情况。

使用&将命令放入后台,如果关闭了shell终端,后台的命令也会退出。为了解决这个问题,可以使用 nohup命令

gyj@guyanjun:~$ nohup sleep 2000 &
[2] 1261
gyj@guyanjun:~$ nohup: 忽略输入并把输出追加到'nohup.out'gyj@guyanjun:~$ nohup sleep 3000 >aa.out &
[3] 1264
gyj@guyanjun:~$ nohup: 忽略输入重定向错误到标准输出端gyj@guyanjun:~$ nohup sleep 3000 &>aa.out &
[4] 1265gyj@guyanjun:~$ jobs
[1]   运行中               while true; dosleep 200;
done &
[2]   运行中               nohup sleep 2000 &
[3]-  运行中               nohup sleep 3000 > aa.out &
[4]+  运行中               nohup sleep 3000 &> aa.out &
gyj@guyanjun:~$

请注意使用nohup需要将后台的进程的输出处理一下,shell退出以后,后台程序原本输出到屏幕的输出就无处可去了。

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

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

相关文章

java: 5-4 while循环

文章目录 1. while循环1.1 基本语法1.2 流程图![请添加图片描述](https://img-blog.csdnimg.cn/direct/902ee10622a74b689f18eff6b4a2a61e.png)1.3 练习1.4 细节1.5 练习题 1. while循环 1.1 基本语法 1.2 流程图 1.3 练习 输出 10 句 你好,韩顺平教育。 public class var0…

使用 dbgate 在 sealos 上完美管理 mysql pgsql 等数据库

先登录 sealos 创建数据库&#xff0c;可以创建个 pgsql: 再到模版市场启动 dbgate: 配置数据库的连接信息&#xff0c;即可搞定收工 sealos 以kubernetes为内核的云操作系统发行版&#xff0c;让云原生简单普及 laf 写代码像写博客一样简单&#xff0c;什么docker kubernete…

echarts - xAxis.type设置time时该如何使用formatter的分级模板

echarts 文档中描述了x轴的多种类型 一、type: ‘value’ ‘value’ 数值轴&#xff0c;适用于连续数据。 此时x轴数据是从零开始&#xff0c;有数据大小的区分。 【注意】 因为xAxis.data是为category服务的&#xff0c;所以xAxis.data里面设置的数据无效。 二、type: ‘ca…

机器学习 —— 自用整理期末复习笔记

一、绪论 机器学习术语 假设空间 p5 监督学习&#xff08;supervised learning&#xff09;的任务是学习一个模型&#xff0c;使模型能够对任意给定的输入&#xff0c;对其相应的输出做出一个好的预测。模型属于由输入空间到输出空间的映射的集合&#xff0c;这个集合就是假设空…

C# 自定义配置文件序列化生成+文件格式错误自动回档

文章目录 前言选择Xml简单的Xml使用测试用例简单的写简单的读简单的生成配置修改配置类测试用例运行结果对比 代码逻辑封装逻辑示意封装好的代码测试生成配置文件格式错误测试使用默认值覆盖来解决问题 配置文件人为修改错误如何解决解决方案代码测试用例运行结果 代码封装总结…

Redis 过期删除策略

常见的三种过期删除策略&#xff1a; 定期删除&#xff1b;惰性删除&#xff1b;定时删除&#xff1b; 定期删除策略 每隔一段时间「随机」从数据库中取出一定数量的 key 进行检查&#xff0c;并删除其中的过期key。 定期删除的实现在 expire.c 文件下的 activeExpireCycle …

Python 使用input函数从键盘输入数据

在Python中&#xff0c;input()函数可以从键盘获取用户的输入数据。当我们使用input()函数时&#xff0c;会暂停程序的执行&#xff0c;等待用户输入数据&#xff0c;并将用户输入的数据作为字符串返回。 如&#xff1a; name input("请输入你的姓名&#xff1a;"…

[蓝桥杯学习] 树状数组的二分

要解决这个问题&#xff0c;插入和删除可以用STL实现&#xff0c;2操作如果用树状数组实现的话&#xff0c;将数的值作为树状数组的下标&#xff0c;即值域。 树状数组有两种操作&#xff0c;一个是更新某点的值&#xff0c;另一个是求区间和。 mid (lr)/2 &#xff0c;求和 …

气缸功能块(SMART PLC梯形图代码)

有关气缸功能块的更多介绍,可以参考下面链接文章: https://rxxw-control.blog.csdn.net/article/details/125459568https://rxxw-control.blog.csdn.net/article/details/125459568CODESYS平台双通气缸功能块 https://rxxw-control.blog.csdn.net/article/details/12544822…

TypeScript 和 jsdom 库创建爬虫程序示例

TypeScript 简介 TypeScript 是一种由微软开发的自由和开源的编程语言。它是 JavaScript 的一个超集&#xff0c;可以编译生成纯 JavaScript 代码。TypeScript 增加了可选的静态类型和针对对象的编程功能&#xff0c;使得开发更加大规模的应用容易。 jsdom 简介 jsdom 是一个…

第10课 实现多对多音视频会议功能

本课对应文件下载链接&#xff08;非源码&#xff09;&#xff1a;https://download.csdn.net/download/XiBuQiuChong/88717642 在前两节课&#xff0c;我们将推流端与播放端合并为一对一音视频聊天功能并解决了关键的回声问题&#xff0c;在此基础上&#xff0c;我们可以进一…

1876_电感的特性小结

Grey 全部学习内容汇总&#xff1a; GitHub - GreyZhang/g_hardware_basic: You should learn some hardware design knowledge in case hardware engineer would ask you to prove your software is right when their hardware design is wrong! 1876_电感的特性小结 主要是…

无法找到 WindowsKernelModeDriver10.0 的生成工具

无法找到 WindowsKernelModeDriver10.0 的生成工具(平台工具集 “WindowsKernelModeDriver10.0”)。若要使用 WindowsKernelModeDriver10.0 生成工具进行生成&#xff0c;请安装 WindowsKernelModeDriver10.0 生成工具。或者&#xff0c;可以升级到当前 Visual Studio 工具&…

2024年,前端必会的console骚操作

调试。程序员们努力地避免的东西,只为在代码中制造更多的错误。 编写无错误的代码是即使是最好的程序员也会觉得难以实现的。这就是为什么你应该总是调试代码。 而调试JavaScript代码的最好方法之一就是了不起的console.log()。除此之外,还有更好的方法。 这也正是本文的重点…

基于apache的http文件服务配置

背景&#xff1a; 公司的产品使用的第三方模组可以OTA&#xff0c;厂家提供的是window开启软件&#xff0c;这样就可以在本机做http下载服务器&#xff0c;然后使用端口映射的方式&#xff0c;公开到外网&#xff0c;这样就可以进行4G网络访问内网服务器了。但这个有个弊端&am…

【算法每日一练]-dfs bfs(保姆级教程 篇8 )#01迷宫 #血色先锋队 #求先序排列 #取数游戏 #数的划分

目录 今日知识点&#xff1a; 使用并查集映射点&#xff0c;构造迷宫的连通块 vis计时数组要同步当回合的处理 递归求先序排列 基于不相邻的取数问题&#xff1a;dfs回溯 n个相同球放入k个相同盒子&#xff1a;dfs的优化分支暴力 01迷宫 血色先锋队 求先序排列 取数游…

Unity添加所有场景到BuildSettings

Unity添加所有场景到BuildSettings using UnityEngine; using UnityEditor; using System.Collections.Generic; using System.IO; public class Tools : Editor {[MenuItem("Tools/添加所有场景到BuildSettings")]static void CheckSceneSetting(){List<string&…

BOM,JS执行机制等

1.BOM 概述 1.1什么是 BOM BOM( Browser Object Model &#xff09;即浏览器对象模型&#xff0c;它提供了独立于内容而与浏览器窗口进行交互的对象&#xff0c;其核心对象是window. BOM由一系列相关的对象构成&#xff0c;并且每个对象都提供了很多方法与属性。 BOM缺乏标…

十九:爬虫最终篇-平安银行商城实战

平安银行商场实战 需求 获取该商城商品信息 目标网址 https://m.yqb.com/bank/product-item-50301196.html?mcId1583912328849970&loginModepab&historyy&sceneModem&traceid30187_4dXJVel1iop详细步骤 1、寻找数据接口 2、对比payload寻找可疑参数 3、多…

系列十四、while do...while switch模板代码

一、while & do...while & switch模板代码 1.1、while /*** 需求&#xff1a;使用while循环打印5遍Hello World!*/ Test public void print5() {int i 1;while (i < 5) {System.out.println("Hello World! " LocalDateTime.now());// 线程休眠&#x…