Linux入门(2)

本文为个人学习与实战过程中的思路总结,旨在分享技术探索经验,若有疏漏之处,欢迎交流指正。

好靶场简介

漏洞复现学习由"好靶场"支持

官网链接-好靶场平台-安全靶场-网络安全靶场

靶场一(nl命令执行)

我们开启靶场先看描述

这道题的描述是:"通过这个Demo,你可以体验并学会Linux的nl命令。

Flag在/tmp/flag.txt"

官方解题思路

nl 命令用于为文件中的每一行加上行号,输出时更加清晰有序。基本用法为 nl filename,可以看到每一行前面都有编号。

在安全测试中,nl 一些过滤只限制 cathead 等命令的场景下,攻击者可能绕过过滤用 nl 来查看敏感文件内容。

复制代码
nl /tmp/flag.txt

拓展

除了提供的思路 nl /tmp/flag.txt

还可以使用下面的nl命令获取flag

. 使用标准输入重定向

nl < /tmp/flag.txt

. 指定行号格式

nl -b a /tmp/flag.txt # 所有行都编号

nl -b t /tmp/flag.txt # 只对非空行编号(默认)

nl -b n /tmp/flag.txt # 不编号

. 自定义行号格式

nl -n ln /tmp/flag.txt # 左对齐编号

nl -n rn /tmp/flag.txt # 右对齐编号(默认)

nl -n rz /tmp/flag.txt # 右对齐,前导零

. 设置编号宽度

nl -w 3 /tmp/flag.txt # 编号宽度为3个字符

nl -w 1 /tmp/flag.txt # 最小宽度

. 设置编号增量

nl -i 2 /tmp/flag.txt # 每次增加2

. 使用命令替换

nl $(echo /tmp/flag.txt)

nl echo /tmp/flag.txt

. 使用通配符(如果目录中只有一个文件)

nl /tmp/f*.*

nl /tmp/*.txt

. 使用find结合exec

find /tmp -name "flag.txt" -exec nl {} ;

/tmp 目录下查找名为 flag.txt 的文件,找到后用 nl 命令(带行号显示内容)处理它

. 使用进程替换(bash)

nl <(cat /tmp/flag.txt)

bash 的进程替换语法,把 cat /tmp/flag.txt 的输出(文件内容)当成一个「临时文件」,传给 nl 命令加行号

nl /tmp/flag.txt | head # 只显示前几行

nl 给文件加行号,再通过管道 | 把结果传给 head,只显示文件前 10 行(默认)

nl /tmp/flag.txt | less # 分页查看

nl 加行号后,用 less 分页浏览长文件,支持上下翻页、搜索(/关键词),适合大文件

靶场二(less命令执行)

我们开启靶场先看描述

这道题的描述是:"通过这个Demo,你可以体验并学会Linux的Less命令。

Flag在/tmp/flag.txt"

官方解题思路

less 是一个高级文件分页查看命令,与 more 类似,但功能更强大。使用 less /etc/passwd 可以高效阅读大文件,支持向上和向下翻页(用上下箭头或 PageUp/PageDown),按 q 退出。less 支持内容搜索(使用 / 输入关键词)和更灵活的滚动方式。

在安全实践中,攻击者有时会通过 less 去查看敏感文件,因为它比 more 更易于浏览和查找关键信息,有些过滤措施可能只防住了 cat or more 指令,却忽略了 less

复制代码
less /tmp/flag.txt

靶场三(tail命令执行)

我们开启靶场先看描述

这道题的描述是:"通过这个Demo,你可以体验并学会Linux的tail命令。

Flag在/tmp/flag.txt"

官方解题思路

tail 是 Linux 下用于查看文件末尾内容的命令,默认显示最后 10 行。比如:tail /etc/passwd 会输出文件的最后 10 行。

在安全实践中,tail 可以用来快速检查日志的最新内容,或者读取大文件的末端。攻击者有时会用 tail 来获取敏感文件的结尾信息,以绕过对部分内容的读取限制。

复制代码
tail /tmp/flag.txt

拓展

看看其它解题思路!

tail /tmp/flag*

tail -n 20 /tmp/flag.txt

awk '{print}' /tmp/flag.txt

逐行打印文件的全部内容,效果和 cat /tmp/flag.txt 完全等价

awk 'NR<=20' /tmp/flag.txt

只打印文件的前 20 行内容

sed -n '1,50p' /tmp/flag.txt

打印文件的第 1 行到第 50 行内容

sed '' /tmp/flag.txt

原样输出文件的全部内容,等价于 cat /tmp/flag.txt

fold -w 80 /tmp/flag.txt

把文件的超长行按 80 个字符宽度折行,方便阅读

vi xxxxxxxxxx

靶场四(head命令执行)

我们开启靶场先看描述

这道题的描述是:"通过这个Demo,你可以体验并学会Linux的head命令。

Flag在/tmp/flag.txt"

官方解题思路

head 是 Linux 下用于查看文件开头内容的命令,默认显示前 10 行。比如:head /etc/passwd 会输出文件的前 10 行。

在安全实践中,head 可以用来快速检查大文件的一部分,或者绕过对某些命令(如 cat )的限制。攻击者有时会用 head 来读取敏感文件的开头内容。

复制代码
head /tmp/flag.txt

靶场五(tac命令执行)

我们开启靶场先看描述

这道题的描述是:"通过这个Demo,你可以体验并学会Linux的tac命令。

Flag在/tmp/flag.txt"

官方解题思路

tac 是 Linux 下的一个有趣命令。它和 cat 类似,但会将文件内容的每一行倒序输出,最后一行会显示在第一行。比如:tac /tmp/flag.txt

有时候如果服务不允许 cat 命令,攻击者会尝试用 tac ,因为 tac 实际上也可以读取文件内容,常用于绕过对 cat 命令的限制。

复制代码
tac /tmp/flag.txt

拓展

看看其它师傅们的解题思路!

除了tac /tmp/flag.txt可以查看flag

还可以通过以下的命令你来查看

使用特定分隔符(默认为换行符)

复制代码
tac -s '' /tmp/flag.txt

以空行作为分隔符逆序段落

复制代码
tac -s '^$' /tmp/flag.txt

使用shell脚本

复制代码
echo "$(tac /tmp/flag.txt)"

使用命令替换

复制代码
var=$(tac /tmp/flag.txt); echo "$var"

多次逆序(等同于原顺序)

复制代码
tac /tmp/flag.txt | tac

使用绝对路径调用tac

复制代码
/usr/bin/tac /tmp/flag.txt

本篇完 | 实践出真知,交流共进步

每一篇文章都是一次沉淀,感谢你的阅读。技术没有捷径,唯有不断积累、不断输出。期待下次继续与你分享更多实战经验,一起前行。

《法律与责任声明》

本内容仅用于网络安全漏洞的技术研究、学习与交流。

一、合法性要求

  • 严格遵守《中华人民共和国网络安全法》及相关法律法规,严禁将所学技术用于非法活动,如未经授权的攻击、窃取信息等。例如,不得对未授权的真实生产环境网站做漏洞测试。
  • 漏洞测试须在合法授权环境进行,可使用自己搭建的靶场或获书面授权的目标系统,否则将担法律责任。

二、风险与责任

  • 若因参考本内容对第三方造成损失,本人不承担法律责任,使用者自行担责。

三、传播限制

  • 禁止将本内容用于恶意传播,如制作恶意教程、培训非法黑客组织,应维护良好网络安全环境。
  • 发现有人利用本内容非法活动,应及时举报。

四、版权声明

本文为本人独立创作,有完整知识产权。未经书面许可,任何单位或个人不得转载、复制或以其他方式使用,违者依法追责。

阅读并使用本文章内容即表示同意声明条款

相关推荐
鄃鳕2 小时前
vscode远程连接virtualBox上的Ubuntu
linux·运维·ubuntu
CDN3602 小时前
游戏盾日志看不到攻击?日志开启与上报问题排查
游戏·网络安全·游戏引擎
AI自动化工坊2 小时前
工程实践:AI Agent双重安全验证机制的技术实现方案
网络·人工智能·安全·ai·ai agent
Lucis__2 小时前
Linux系统收官篇:线程学习的一些心得总结
linux·学习·线程
Evand J2 小时前
PSINS工具箱笔记——SINS/GNSS的例程
笔记·gnss·组合导航·工具箱·psins·导航工具箱·sins
路飞雪吖~3 小时前
【测试】接口测试---1个框架,5个模块
开发语言·python·测试工具
minji...3 小时前
Linux 多线程(五)用C++语言以面向对象方式封装线程
linux·运维·服务器·网络·jvm·数据库
来鸟 鸣间3 小时前
mutex_lock 流程
linux·c语言
秋风&萧瑟3 小时前
【Linux系统编程】system函数和exec函数族的使用
linux·运维·服务器