nc签到题(常用指令绕过)
About 3 min
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:显示帮助信息。
- options:
键盘操作:
Space
或f
:向下滚动一页。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