【pwn】[SWPUCTF 2021 新生赛]nc签到 --shell过滤字符

附件下载打开:

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权限,仅仅局限于没有密码的情况

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值