SH 写入内容不带任何特殊字符的文件

信息安全 重击
2021-08-23 13:55:15

所以,我有一个挑战,如下所示。

您可以在干净的 RHEL 6 安装中访问普通的 shell(sh)。将任意内容写入file.txt,但不包含以下字符。

# & \ + - % @ = : ; , . ' " ^ ` ~ _ | ! / ? * $ # < > [ ] { } ( )

我可以使用 like touch fileorrm filetouch file.txtor由于andecho content > file.txt是不允许的.>

这甚至可能吗?

3个回答

这很简单:检查 python、perl 或任何解释语言的可用性,然后启动解释器并编写代码!

首先看一下允许的字符:

00 E ''         10 E $'\020'    20 E \     46 - F     56 - V     6C - l      
01 E $'\001'    11 E $'\021'    30 - 0     47 - G     57 - W     6D - m      
02 E $'\002'    12 E $'\022'    31 - 1     48 - H     58 - X     6E - n      
03 E $'\003'    13 E $'\023'    32 - 2     49 - I     59 - Y     6F - o      
04 E $'\004'    14 E $'\024'    33 - 3     4A - J     5A - Z     70 - p      
05 E $'\005'    15 E $'\025'    34 - 4     4B - K     61 - a     71 - q      
06 E $'\006'    16 E $'\026'    35 - 5     4C - L     62 - b     72 - r      
07 E $'\a'      17 E $'\027'    36 - 6     4D - M     63 - c     73 - s      
08 E $'\b'      18 E $'\030'    37 - 7     4E - N     64 - d     74 - t      
09 E $'\t'      19 E $'\031'    38 - 8     4F - O     65 - e     75 - u      
0A E $'\n'      1A E $'\032'    39 - 9     50 - P     66 - f     76 - v      
0B E $'\v'      1B E $'\E'      41 - A     51 - Q     67 - g     77 - w      
0C E $'\f'      1C E $'\034'    42 - B     52 - R     68 - h     78 - x      
0D E $'\r'      1D E $'\035'    43 - C     53 - S     69 - i     79 - y      
0E E $'\016'    1E E $'\036'    44 - D     54 - T     6A - j     7A - z      
0F E $'\017'    1F E $'\037'    45 - E     55 - U     6B - k     7F E $'\177'

...嗯,这很短!

然后

  • 所以使用 变量是不可能的, 确实需要很多标志,甚至 , 没有:and =, 我们很短...
  • 在命令行上使用tarcpio需要,-
  • 使用uudecode将需要第一条数据线包含-.
  • munpack很多:和一些相同="--"
  • dd,tee等等将需要 dot 进行扩展.... (也许这个:(tee file܂txt注意点܂是 UTF-8 &#1794;,不是真正的点.),然后Hello worldCtrl+ d,但没有评论)
  • 如果可能,使用会自动添加.txt扩展名的编辑器

不。

从那里你必须浏览你所有的FS才能找到一些替代方式或语言,比如 , , ...

如果您的质询规则明确表示您需要.txt在文件名中添加 a 但是,这可能是一个有争议的问题

由于这是一个 Linux 发行版,我不认为该扩展名应该具有如此重要的意义,因为该文件仍将被视为 ASCII 文本文件,前提是该文件的前两个字节不组合创建一个shebang或其他魔术字符否则会改变文件的解释。请参阅线程以获取更多说明。

您应该可以使用它tee来创建file、写入所有文本而不会出现问题,然后通过运行检查它是否仍然是文本文件file file