Skip to main content

nc签到题(常用指令绕过)

ElegyAbout 3 minpwn

nc签到题(常用指令绕过)

第一次拿到这个附件 丢进ida里面没用 后缀改为.zip 也没有看见什么东西 一筹莫展 拿这玩意丢进虚拟机里面跑了一下 发现了import无效指令 所以才改后缀为py 才看见代码

import os

art = '''

   ((  "####@@!!$$    ))
       `#####@@!$$`  ))
    ((  '####@!!$:
   ((  ,####@!!$:   ))
       .###@!!$:
       `##@@!$:
        `#@!!$
  !@#    `#@!$:       @#$
   #$     `#@!$:       !@!
            '@!$:
        '`\   "!$: /`'
           '\  '!: /'
             "\ : /"
  -."-/\\\-."//.-"/:`\."-.JrS"."-=_\\
" -."-.\\"-."//.-".`-."_\\-.".-\".-//'''
print(art)
print("My_shell_ProVersion")

blacklist = ['cat','ls',' ','cd','echo','<','${IFS}']

while True:
    command = input()
    for i in blacklist:
        if i in command:
            exit(0)
    os.system(command)




linux中常用的指令

1、cat命令—用于将文件内容输出到终端上,经常使用于查看文本文件的内容。

2、less命令—用于分页查看文件内容,可以向上翻页、向下翻页、搜索关键字等,合适查看大文件。

  • less [options] file_name
    
    • options:
      • -N 或 --LINE-NUMBERS:显示每行的行号。
      • -S 或 --chop-long-lines:不折行长行。默认情况下,less 会折行显示超出屏幕宽度的长行。使用此选项后,长行将不会被折行,而是横向滚动显示。
      • -M 或 --LONG-PROMPT:显示更详细的提示信息,包括文件的百分比位置等。
      • -i 或 --ignore-case:在搜索时忽略大小写。默认情况下,less 的搜索是区分大小写的。
      • -g 或 --hilite-search:仅高亮显示最后一次搜索匹配的字符串。
      • -E 或 --QUIT-AT-EOF:在到达文件末尾时自动退出。
      • -m 或 --LONG-PROMPT:显示百分比表示的文件位置。
      • -R 或 --RAW-CONTROL-CHARS:显示控制字符(如颜色代码)。
      • -X 或 --no-init:不清空屏幕。在退出 less 时,屏幕上显示的文本不会被清除。
      • -F 或 --quit-if-one-screen:如果文件内容能够在一屏内显示完毕,则自动退出 less
      • -? 或 --help:显示帮助信息。
  • 键盘操作:

    • Spacef:向下滚动一页。
    • b:向上滚动一页。
    • Arrow keys:逐行滚动。
    • /:向下搜索字符串。
    • ?:向上搜索字符串。
    • n:重复上一次搜索(向下)。
    • N:重复上一次搜索(向上)。
    • q:退出 less

3、more命令—与less类似,也是用于分页查看文件内容,但是功能较少,只能向下翻页。

more [options] file_name

4、head命令—用于查看文件的前几行内容,默许情况下显示前10行。

head [options] [file...]

其中,[file...] 是一个或多个文件名。如果没有指定文件,或者文件名为 -head 会从标准输入读取数据。

  • -n [数值]--lines=[数值]:显示文件开始的指定行数。例如,head -n 5 file.txt 会显示 file.txt 的前 5 行。
  • -c [数值]--bytes=[数值]:显示文件开始的指定字节数。例如,head -c 100 file.txt 会显示 file.txt 的前 100 个字节。
  • -q--quiet:在处理多个文件时不打印每个文件的名称作为头部。
  • -v--verbose:总是打印每个文件的名称作为头部。

5、tail命令—用于查看文件的后几行内容,默许情况下显示文件的最后10行。 6、nl命令—用于在文件中加上行号,便于查看和编辑文件。 7、vi/vim命令—是一种文本编辑器,可以用于查看和编辑文件内容,适用于高级用户。

IFS变量

这里提到IFS作为Shell的内置变量,是一个用于分割字段的字符列表

IFS 的工作原理

IFS 是一个特殊的 shell 变量,用于定义字段边界。它告诉 shell 如何解释序列和字段分隔符。这对于文本解析、命令行参数处理以及读取和解析数据至关重要。

  • 默认情况下IFS 包含空格、制表符和换行符。这意味着 shell 在处理文本时会将这些字符视为字段之间的分隔符。
  • 更改 IFS 的值可以改变 shell 解释数据的方式。这特别有用于处理非标准格式的数据。

这里举列子:

IFS=','
line="apple,banana,cherry"
for fruit in $line; do
  echo $fruit
done
# 输出:apple banana cherry

payload

  • head$IFS$1flag