附件下载打开:
import os
art = ‘’’
(( “####@@!!KaTeX parse error: Expected 'EOF', got '#' at position 16: )) `#̲####@@! )) (( '####@!!$: (( ,####@!!$: )) .###@!!$:
##@@!KaTeX parse error: Expected 'EOF', got '#' at position 12: : `#̲@!!
!@# #@!$: @#$ #$
#@!
:
!
@
!
′
@
!
: !@! '@!
:!@!′@!:
‘\ "!$: /
’
'\ ‘!: /’
“\ : /”
-.”-/\-.“//.-”/:\."-.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)
发现给出了源码,但是过滤了蛮多东西,这里主要记录可以绕过的方法:
1.首先,末尾有个system()函数,command是我们输入的字符,发现没有过滤sh,/bin/sh,所以可以通过输入sh打开子进程,从而getshell
2.输入c’at’$IFS 9 f l a g , 首先可用引号绕过, 9flag,首先可用引号绕过, 9flag,首先可用引号绕过,IFS$9是空格
3.su命令是Linux系统中的一个超级用户切换命令,可以让当前用户切换到另一个用户身份下,并获得该用户的权限。通常情况下,需要输入目标用户的密码才能切换到该用户身份下。所以可以输入su,获取root权限,仅仅局限于没有密码的情况