CTF/웹해킹

[TFCCTF] PONG - 웹해킹 / Command Injection / 명령어삽입

SecurityMan 2022. 9. 7. 11:00

 

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 파일의 내용을 출력시킬 수 있다.

반응형