Warm Up 난이도의 간단한 웹해킹 문제
아주 기본적인 Command Injection 문제이다.
문제 제목이 PONG 인걸보니 ping 명령어와 관련된 문제인듯 하다.
이 문제와 똑같은 문제를 Root Me 사이트에서 제공하고 있고,
얼마전에 해당 문제 풀이를 포스팅했었다.
(https://hackingstudypad.tistory.com/74)
문제페이지에 접속한 모습이다.
index.php 에서 host 변수에 127.0.0.1 이라는 값을 받아 서버로 전달하고 있다.
서버에서는 ping -c 2 127.0.0.1 이라는 명령어가 실행되었다는 정보를 알려주고 있다.
ping 은 네트워크를 통해 특정한 host 가 도달할 수 잇는지 여부를 테스트하는데 쓰이는 명령어이다.
문제는 이렇게 웹서비스를 통해서 운영체제 명령어를 실행시킬 경우
사용자의 입력값을 적절하게 필터링 해줘야 한다는 것이다.
그렇지 않으면 불필요한 정보까지 노출될 수 있다.
리눅스 쉘스크립트는 명령어 뒤에 ; (세미콜론)을 쓰면
이어서 다른 명령어를 실행시킬 수가 있다.
ping 뒤에 ; 를 입력하고 ls를 입력하면
명령어 수행결과가 이렇게 같이 연달아서 출력되게 된다.
이 페이지도 마찬가지이다.
host 변수에 127.0.0.1;ls 라고 입력해주면
ping 명령어와 ls 명령어가 둘 다 수행되는것을 볼 수 있다.
현재 경로에는 index.php 파일 하나만 존재한다.
이제 flag 파일을 찾으면 된다.
pwd 명령어를 입력해 현재 경로가 어딘지 확인했다.
지금은 /var/www/html 경로에 위치해 있다.
ls / 을 입력해서 root 아래 어떤 파일들이 있는지 살펴보니
flag.txt 파일이 보였다.
위치를 알았으니 읽어주면 된다.
cat /flag.txt 라고 입력하면 flag.txt 파일의 내용을 출력시킬 수 있다.
'CTF > 웹해킹' 카테고리의 다른 글
[SHELLCTF] Extractor - 웹해킹 / SQL Injection (82) | 2022.09.13 |
---|---|
[SHELLCTF] Choosy - 웹해킹 / XSS (40) | 2022.09.10 |
[HSCTF9] squeal - 웹해킹 / SQL Injection (54) | 2022.07.11 |
[HSCTF9] gallery - 웹해킹 / LFI (57) | 2022.07.07 |
[HeroCTF] SmallMistakeBigMistake - 웹해킹 / 쿠키변조 / Flask (56) | 2022.07.05 |