pwn基础入门-1-1:niscc-[SWPUCTF 2021 新生赛]nc签到

1-1:niscc-[SWPUCTF 2021 新生赛]nc签到

题目:ls cat等关键词的过滤

image-20240510165334073

打开ubuntu进行nc连接

指令形式 nc ip 端口号 nc 域名 端口号

img

附件内容:字符过滤

解释

这段Python代码实现了一个简单的命令行shell,但加入了黑名单功能,禁止执行某些命令。 首先,通过import os导入操作系统模块。 定义了一个多行字符串art,用于显示shell的欢迎界面。 使用print()函数分别输出欢迎界面和"ProVersion"。 创建一个名为blacklist的列表,其中包含了一些禁止执行的命令。 使用while True创建一个无限循环,不断接收用户输入的命令。 使用input()函数获取用户输入的命令,并将其存储在变量command中。 使用for循环遍历黑名单列表blacklist。 如果黑名单中的任何一个词语在用户输入的命令中出现,则通过exit(0)退出程序。 如果用户输入的命令不在黑名单中,则使用os.system(command)执行该命令

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)

所以,我们连接上以后,输入ls的查看命令是不行的

使用l\s,执行时l\s=ls,但在字符串判断时肯定不是相同的。

image-20240516102310369

image-20240516102335750

我们使用cat指令,读取文件(回头看一下,cat也被过滤了,没事,再加条\,变成c\at flag)

空格也是被过滤了,使用$IFS$9可以代替空格执行

c\at$IFS$9flag //$IFS$9可以替换空格

image-20240516102347426

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值