linux怎么创建牡蛎_文件amp;目录小技巧 | Linux后门系列
0x01 Linux 目录技巧
我们都知道 Windows 下文件和文件夹命名是有很多规则和限制的,但是可以通过一些程序来绕过限制,今天我们来看看 Linux 有哪些有趣的规则
参考 https://www.pathname.com/fhs/pub/fhs-2.3.pdf
当然了,我这种人怎么可能按照官方文档按部就班的去研究,我肯定是先 fuzz 一波了,没错,我是手动 fuzz
.
一个 dot 代表当前目录,两个 dot 代表上层目录
在 Linux 中 . 和 .. 目录是默认的,代表着本级和上级
所以我们在创建 . 和 .. 的时候会提示文件夹已经存在了,所以我尝试了一下三个点,成功了
所以说 . 是可以出现在目录名字中的,如果以 . 开头的文件和文件夹仅使用 ls 是看不见的
那么问题来了,默认的 . .. 我们是否可以修改呢?继续 fuzz
看这样是不可以修改呀,我们试试软连接呢?
软连接是可以的,可以将 .. 设置一个软连接,那么问题来了,我们可不可以将其他目录的软连接设置为 .. 呢 ?
设置没有出错,但是呢,没有成功,我用 root 权限设置了一下,也没有成功。
?
在文件名扩展(Filename expansion)上扮演的角色是匹配一个任意的字元,但不包含 null 字元
可以看到,问号是可以放在目录里面的,但是呢,在 ls 下没有隐藏效果
那问号是否可以和其他字符组合呢?
可以看到的是问号是可以和其他符号组合的,但是我们创建 .?. 的时候,提示我们已经存在了,应该是和 ... 冲突了,那就说明问号是有特殊含义的,是什么呢?
问号可以匹配任意一个字符,与 * 不同的是,只能匹配一个字符
那问题来了,我新建一个只有一个字符的目录, ls ?
会显示什么呢?
果然和我想的一样
#
在文件中表示行开头或者注释
井号可以出现在目录中吗?
可以看到,井号可以放在目录的结尾,可以放在目录中间,但是不可以直接作为目录开头,需要使用引号进行引起来
这里就有一个问题了?
如果web目录中包含 # 号,那么请求结果会怎么样呢?会被截断吗?
大家感兴趣可以去试试,我是没时间整了,等以后的吧。
%
在运算式中,用来表示 “除法”
可以看到 % 是完全可以放在目录的任何地方的
$
与变量相关
$ 符号本身在 Linux shell 中是代表变量参数的意思,这里我们可以看到,$ 也是完全可以出现在目录中,但是要注意, $1 一般会用来代表除本身以外的第一个参数,所以创建目录的时候需要使用引号,同时进入的时候也需要引号。
如果不加引号,会跳到根目录,因为如果不加上引号,其实就是执行了 cd $1
,大家可以执行一下试试,看看什么结果。
&
表示 and ,也表示命令在后台执行,也可以用来重定向标记
其实从这里可以看出来,这些特殊的符号基本上都可以使用双边带引号的方式来进行创建目录,但是需要注意的是,进入这些目录的时候需要加上引号
*
通配符
星号在 Linux 中通配符的意思,但是我们还是可以创建 * 号这个目录的,前提是目录是空的,不然目录会冲突,具体如下:
^
这个符号在规则表达式中,代表行的 “开头” 位置
尖号在这里是畅通无阻的,和普通的字符一样
@
@ 符号本身是没有什么含义的,不过 $@ 是有意义的:
$@ 与 $* 具有相同作用的符号,不过它们两者有一个不同点。
符号 $* 将所有的引用变量视为一个整体。但符号 $@ 则仍旧保留每个引用变量的区段观念。
可以看到,@符号也和普通符号没有什么区别
!
通常它代表反逻辑的作用
! 号似乎说法比较多呀,使用也不是很顺畅,这种其实就是我们应该重点关注的
简单来说,叹号可以单独成一个文件夹,也可以作为文件夹的末位字符,说白了,叹号后面不能加东西,叹号加字符代表着特殊含义
所以这里我们进行剖析一下:
!! --> 执行上一条命令
!$ --> 上一个命令的最后一个参数
!^ --> 上一个命令的第一个参数
!:- --> 去掉最后一个参数执行上一个命令
!* --> 使用上条命令的所有参数
命令 !上一条命令:参数所在位置 --> 使用上一条参数的指定参数加入到现在这条命令中
!历史命令数值 --> 执行 history 中指定对应条数的命令
!-2 --> 执行 history 中倒数第二条命令
!关键字 --> 执行上一条包含命令关键字的命令
!!:gs/old/new --> 将上条命令中的 old 替换为 new
逻辑非 ls !(*.cfg)
()
括号这个东西我就一直感觉很迷,和 `` 有异曲同工之妙
[]
常出现在流程控制中,扮演括住判断式的作用
可以看到,中括号与普通字符没啥区别
`
反引号中间的字符串会被当做命令来进行执行
反引号这种还是需要单引号来去掉去特殊含义,之后才能建立相关目录
~
这个符号一直用来代表当前用户的家目录
可以看到,直接在目录中访问 ~ ,会跳到家目录,但是使用绝对路径是可以进入波浪目录的
-
减号,也是参数的指定符号
+
加号
_
下划线
下划线和普通字符无异
=
看来等号也和正常符号没啥区别
|
竖线可以表示或,也可以进行数据重定向等
竖线有点特殊的是,即使是使用相对路径的情况下还是需要引号
\
反斜线,通常用来转义字符
可以看到反斜线也是需要使用引号
/
斜线,通常用来指根目录
,
英文字符的逗号,经常被用作分隔
逗号看起来比较随和,与普通字符差异不大
空格
空格放在后面说纯粹就是为了压轴
就问你吓人不,透明的,这比点号还狠,可以说是辽北第一狠人了!
这还不够,一个空格可以作为目录,2个空格也可以作为目录,n个都可以
空格和点能够碰撞出什么样的火花呢?
虽然说很明显,但是呢,还挺有意思的,于是乎,我冒出来一个想法
假如当前目录默认存在 .vim 目录,由于以点开头,那么ls 默认会看不到,可以使用 ls -al 来进行查看
可以看到,这种方式可以创建一个看起来和 .vim 一样的目录,看起来就很异常,但是删除起来可能会抓狂,当然了,有经验的使用 tab 配合进行删除,但是如果该目录下默认没有 .vim 呢?你还会怀疑吗?有点意思!
' "
单/双引号就不说了
” ’
汉字版本的单双引号
;
分号一般用来做命令分隔
:
冒号好像应用的不多呀
非打印字符
特殊目录
/dev/null
~account
/tmp 具有sbit权限
/dev/shm/
/lost+found/
以上几个目录大家自行学一学,也挺有意思的
0x02 Linux 文件技巧
我们都知道 Windows 下文件和文件夹命名是有很多规则和限制的,但是可以通过一些程序来绕过限制,今天我们来看看 Linux 有哪些有趣的规则
参考 https://www.pathname.com/fhs/pub/fhs-2.3.pdf
这回,我们对文件名进行一下fuzz...
.
一个 dot 代表当前目录,两个 dot 代表上层目录
在 Linux 中 . 和 .. 目录是默认的目录,所以是无法创建为文件的,三个点就不受限制了
创建几乎不受限制
?
在文件名扩展(Filename expansion)上扮演的角色是匹配一个任意的字元,但不包含 null 字元
问号作为文件的时候还是较为平和的,基本上和作为目录时一样
#
在文件中表示行开头或者注释
井号可以出现在文件名中吗?
井号需要引号的帮助来创建文件,访问文件,可以放在文件名的任意位置
%
在运算式中,用来表示 “除法”
可以看到 % 是完全可以放在目录的任何地方的
$
与变量相关
$ 符号本身在 Linux shell 中是代表变量参数的意思,这里我们可以看到,$ 也是完全可以出现在文件名中
&
表示 and ,也表示命令在后台执行,也可以用来重定向标记
其实从这里可以看出来,这些特殊的符号基本上都可以使用双边带引号的方式来进行创建文件,但是需要注意的是,进入这些目录的时候需要加上引号
*
通配符
到这里可以看出,其实这些特殊字符作为文件和作为目录要求是一样的,下面就直接 po 图了!
^
这个符号在规则表达式中,代表行的 “开头” 位置
@
!
通常它代表反逻辑的作用
[]
常出现在流程控制中,扮演括住判断式的作用
`
反引号中间的字符串会被当做命令来进行执行
~
这个符号一直用来代表当前用户的家目录
-
减号,也是参数的指定符号
+
加号
_
下划线
=
|
竖线可以表示或,也可以进行数据重定向等
\
反斜线,通常用来转义字符
/
斜线,通常用来指根目录
,
英文字符的逗号,经常被用作分隔
空格
空格放在后面说纯粹就是为了压轴
' "
单/双引号就不说了
” ’
汉字版本的单双引号
这字符我发现挺邪乎呀,不知道因为啥!!!值得注意一下!!!
;
分号一般用来做命令分隔
:
冒号好像应用的不多呀
非打印字符
Linux万物皆文件
往期文章
vim 后门 | Linux 后门系列
alias后门 | Linux 后门系列
计划任务后门 | Linux 后门系列
SSH 后门 | Linux 后门系列
LD_PRELOAD 后门 | Linux 后门系列
有态度,不苟同相关文章:

php简单算法之冒泡排序
<?php $arr [2,4,1,5,3,11,6,999,88,666,66,44,22,33,776];function getNewArr($arr){$count count($arr);//该层循环控制 需要冒泡的轮数for($i1;$i<$count;$i){//该层循环用来控制每轮 冒出一个数 需要比较的次数for($k0;$k<$count-$i;$k){if($arr[$k]>$arr[…

iOS单个应用程序的最大可用内存是多少?
iOS单个应用程序的最大可用内存是多少? StackOverflow上有人做了一些简单的测试,有限设备下迄今为止测到的结果: iPad1: 127MB/256MB/49% (大致crash临界值 / 总内存 / 占比)iPad2: 275MB/512MB/53%iPad3: 645MB/1024MB/62%iPad4: 585MB/102…

sql 存储过程和函数
最近在学习数据库,上课过程中总是在许多知识点有或多或少的问题,对于这些问题的产生,大概是由于我听课习惯所造成的吧,好啦,废话不多说,开始今天到主题吧。 首先介绍SQL的存储过程,先来给它定义…

怎樣制作线段动画_PPT动画还能这么做?我擦!动画源文件免费送你
擦除动画,可以说是基础得不能再基础PPT动画之一了,我们几乎可以在任何带有PPT动画效果的演示中找到它的踪影。简单的直线擦除效果可能大部分都会,那么把直线换成曲线呢?小小的变动都会让你措手不及。所以,你确定自己真…

Linux最大打开文件描述符数
1. 系统最大打开文件描述符数:/proc/sys/fs/file-max a. 查看 $ cat /proc/sys/fs/file-max 186405 2. 设置 a. 临时性 # echo 1000000 > /proc/sys/fs/file-max 2. 永久性:在/etc/sysctl.conf中设置 fs.file-max 1000000 2. 进程最大…

XMT.com超200万被区块链终端交易
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构, 并以密码学方式保证的不可篡改和…

初学LINQ语句
//有两个数组,客户和地址,他们之间通过公司名关联:var customers new[] { new {CustomerID1,FirstName"Kim",LastName"Abercrombie",CompanyName"Alpine Sky House"},new {CustomerID2,FirstName"Jeff&q…

android 开启一个定时线程_ANDROID开发中定时器的3种方法
在android中,经常用到的定时器主要有以下几种实现:一、采用Handler与线程的sleep(long )方法二、采用Handler的postDelayed(Runnable, long) 方法三、采用Handler与timer及TimerTask结合的方法。下面逐一介绍:一、采用Handle与线程的sleep(lo…

083 HBase的完全分布式的搭建与部署,以及多master
一:前提准备 1.设置时间同步 2.清空logs,datas 3.格式化集群 bin/hdfs namenode -format 4.重启集群 sbin/start-dfs.sh sbin/start-yarn.sh 5.删除zookeeper下的data,并新建zkData 6.在zkData下新建myid 7.分发,后,修…

区块链技术指北
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 回顾近现代几次工业革命,人类的发展随着技术的变革而突飞猛进。第一次工业革命革命,以工作机的诞生为开始,以蒸…

cmd查看所有数据库 db2_DB2数据库常用命令集
【IT168 技术】在DB2的开发过程中,贯穿整个开发过程还有很重要的一部分工作就是数据库的维护;对于维护一个庞大信息系统来说是非常必要的;留一份简易的维护手册,以备不时之需;以下收集到的部分维护命令,以飨…

[原创]SparkR针对mysql的数据读写操作实现
网上翻了两天没找到一份有用的文章,自己研究SparkR的官方api文档,总算找到了实现的接口 我是用R语言加载SparkR库的方式,当然也可以直接用SparkR控制台就不用自己加载SparkR的库了 #首先加载sparkR的库 Sys.setenv(TEST_HOME "/root/so…

使用vue2.0 vue-router vuex 模拟ios7操作
其实你也可以,甚至做得更好... 首先看一下效果:用vue2.0实现SPA:模拟ios7操作 与 通讯录实现 github地址是:https://github.com/QRL909109/ios7 如果您觉得可以,麻烦给一个star,支持我一下。 之前接触过Ang…

区块链技术是否会终结开源时代?
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 2017年11月18~19日,在上海交大召开的2017中国开源年会,在第二天我们组织了一个“闭门会议”。在这个闭门会议上,…

Direct2D开发:Direct2D 和 GDI 互操作性概述
本主题说明如何结合使用 Direct2D 和 GDI(可能为英文网页)。有两种方法可以结合使用 Direct2D 和 GDI:您可以将 GDI 内容写入与 Direct2D GDI 兼容的呈现器目标,也可以将 Direct2D 内容写入 GDI 设备上下文 (DC) 0X01 将Direct2D内…

vmware虚拟机启动centOs黑屏
如图所示 , 我的VM 启动虚拟机之后就变成了上面的样子,一直不动,ping也ping不好,这个时候 : 1. 要么 内存不够了; 2. 要么 网络协议存在问题了; 本地windows环境在管理员的cmd命令行输入 &…

plc和pc串口通讯接线_让你搞懂PLC串口通讯和通讯接口,这东西估计没几个能说清楚~...
电力作业人员在使用PLC的时候会接触到很多的通讯协议以及通讯接口,最基本的PLC串口通讯和基本的通讯接口你都了解吗?1,什么是串口通讯?串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混…

西班牙放大招,利用区块链技术防腐
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 在过去十年来,西班牙爆发了一系列引人注目的腐败丑闻,其中以公共采购最甚。但据TI 2017年的腐败认知指数表明,西…

FreeBSD 8
FreeBSD 8.0的安装过程和7.2区别不大。先在FreeBSD官方网站上下载安装镜像,我一般都下载DVD的ISO,也有人爱好下最小的安装包,然后通过FTP或HTTP方式从网上下载各个程序包。这里就以DVD的ISO为例,下载DVD的ISO后,刻录到…

c潭州课堂25班:Ph201805201 MySQL第二课 (课堂笔记)
mysql> create table tb_2( -> id int, -> name varchar(10) not null -> ); 插入数据 insert into tb_2 value(1,xiaobai); 在非空时,NOT NULL 必须有值, 2,在已有的表中设置一个字段的非空约束 mysql> alter table tb_2 -…

vanpopup 高度_解决VantUI popup 弹窗不弹出或无蒙层的问题
背景####组件PopupTime.vue把vant官网的popup时间选择器抽成组件:popup1show: true 即弹窗显示:title"popupTitle.popupName"v-model"currentDate"type"datetime"cancel"onCancel" confirm"onConfirm" class&quo…

区块链技术入门,都涉及哪些编程语言?
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 关于区块链的技能掌握,提到最多的就是Go语言和C、Java,但是很多人产生了歧义,认为只有这几种语言才可以&#x…

centos安装配置nginx,ssl生产和配置教程
【一】nginx安装nginx安装带ssl扩展: cd /usr/local/src #进入用户目录 wget http://nginx.org/download/nginx-1.15.0.tar.gz #下载最新版本nginx tar -zxvf nginx-1.15.0.tar.gz #解压 cd nginx-1.15.0 #进入目录 ./configure --prefix/opt/nginx --with-http_stu…

如何将github上的 lib fork之后通过podfile 改变更新源到自己fork的地址
解决办法: http://stackoverflow.com/questions/20936885/cocoapods-and-github-forks 就是fork完后,提交更改到自己的github上 然后修改podfile的pod导入方式 pod lib,:github>your fork lib.git,:commit >your commitid转载于:https://www.cnblogs.com/code…

证书 vivo_iQOO 5 Pro获泰尔实验室首张流畅性能体验五星证书
近日,中国泰尔实验室向vivo旗下的iQOO 5 Pro(V2025A)型号手机颁发了流畅性能体验五星证书。据中国泰尔实验室官方表示,这是“泰尔证书-流畅性能体验”测评方案推出后的首张证书。“泰尔证书-流畅性能体验”测评方案据悉,“泰尔证书-流畅性能体…

GUI编程之tkinter
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 0. 前言 本文内容为使用Python3的tkinter模块,开发GUI。在阅读本文前,请确保你已经或可能满足以下条件: 电脑中…

js插件 webp_(转)让浏览器支持Webp
转载自:https://segmentfault.com/a/1190000005898538?utm_sourcetuicool&utm_mediumreferral转换工具判断浏览器支持webP方法一:functioncheckWebp() {try{return (document.createElement(canvas).toDataURL(image/webp).indexOf(data:image/webp…

一些大佬博客里的个签
觉得很励志~遇到了就复制下来激励自己。 1.宜静默,宜从容,宜谨严,宜俭约。 //读了两遍感觉心都静下来了。 2.别打扰我,我还能写一套程序。 3.时间并不会因为你的迷茫和迟疑而停留,就在你看这篇文章的同时,…

以太坊搭建私有链
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 1.关于私有链 在以太坊上部署智能合约、发起交易需要花费以太币。而私链和公有链没有关系,不用同步大量的数据,也不用花钱购…

C++回溯法走迷宫
1 #include <iostream> 2 #include <iomanip> 3 #include <cstdlib> 4 using namespace std;5 6 #define MaxSize 100 7 int maze[10][10] //定义一个迷宫,0表示通道,1表示墙 8 {9 { 1,1,1,1,1,1,1,1,1,1 },10 { 1,0,…