CTF/웹해킹

[HackIM CTF] Texnology - 웹해킹 / LaTeX

SecurityMan 2022. 4. 10. 21:00

 

처음 경험해보는 웹해킹 문제였는데 아주 재미있게 풀었다.

 

해킹은 알면 알수록 새로운게 많아서 좋다.

 

반응형

 

문제 설명을 읽어보면 온라인 LaTeX 에디터가 요즘 많이 사용되고 있는데

 

이것의 위험을 알고있는지 물음을 던진다.

 

플래그는 /FLAG 경로에 있다고 알려주고, 웹 소스 없이 문제페이지 주소만 주어진다.

 

나는 LaTeX 라는걸 처음들어봤는데 문서 조판에 쓰이는 프로그램이라고 한다.

 

논문같은거 쓸때, 수식이나 그래프 등을 그리는데 아주 유용하다고 한다.

 

 

문제 페이지에 접속해보면 이런 화면이 나온다.

 

커다란 입력창이 있고, 밑에는 Generate PDF! 라는 버튼이 있다.

 

맨 밑에는 뭔가 콘솔창처럼 보이는 출력간이 보인다.

 

 

일단 예시에 써있는대로 \section{hello world} 라고 입력해보았다.

 

Generate PDF! 버튼을 누르니 밑에 로그가 찍히는데

 

http://52.59.123.14:10005/pdfs/해시값.pdf 경로에 파일이 생성되었다고 알려준다.

 

 

해당 경로에 들어가보면 아까 입력했던 hello world가 적혀있는

 

pdf파일이 생성된 것을 확인할 수 있다.

 

 

구글에 LaTeX editor vuln 이라고 검색해봤더니 여러 문서들이 나왔다.

 

그중에서 서버에 있는 /etc/passwd 파일을 출력시키는 코드를 하나 가져와서 실행시켜 보았다.

 

/etc/passwd는 리눅스 운영체제에서 비밀번호를 저장하는 파일로 아주 중요한 파일 중 하나이다.

 

\newread\file
\openin\file=/etc/passwd
\read\file to\line
\text{\line}
\closein\file

 

밑에 로그가 잘 생성되는걸 보니 별다른 필터링이 되어있지 않은듯 하다.

 

 

생성된 pdf 주소로 들어가보니 놀랍게도 /etc/passwd 내용을 읽어와서

 

맨 첫줄을 출력시킨 pdf가 생성된 것을 확인할 수 있었다.

 

 

참고로 /etc/passwd 파일은 이렇게 생겼다.

 

이 내용중에서 맨위에 root 계정에 대한 내용이 출력된 것이다.

 

/etc/passwd 파일이 잘 출력된 것을 확인했으니

 

이제 플래그를 출력할 차례이다.

 

문제 설명에서 플래그가 /FLAG에 있다고 했으니 

 

아까 /etc/passwd 였던 부분을 /FLAG로 수정해준다.

 

그런데 아까랑 다르게 맨 아래쪽에 BLACKLISTED commands used 라는 메세지가 출력된다.

 

 

확인해보니 플래그를 출력하지 못하도록 FLAG 라는 문자 자체를 필터링을 걸어놓았다.

 

이 부분을 우회해야 플래그를 획득할 수 있다.

 

 

이 부분은 사실 간단하다.

 

리눅스에서는 어떤 파일 이름에 ' 나 "가 들어가도 위처럼 정상적으로 파일내용이 출력되기 때문이다.

 

 

이번에는 /F"L"AG 라고 입력한 뒤에 Generate PDF! 버튼을 눌러준다.

 

아까랑 다르게 정상적으로 pdf파일이 생성되었다는 문구가 나온다.

 

 

pdf 파일 경로로 들어가보면 플래그가 출력되어있는걸 볼 수 있다.

반응형