<OOO>

[Hacking Camp] 22회 CTF WEB 못풀었던 문제 본문

CTF write up

[Hacking Camp] 22회 CTF WEB 못풀었던 문제

<OOO> 2021. 2. 22. 18:46
728x90

이번에는 제한시간 안에 못풀었지만 나중에 풀었던 문제를 업로드 해볼 생각이다.

 

rls1004님이 만드신 Hello, React World! 라는 문제다. 저 주소로 접속을 하면 react.js의 기본화면이 나온다.

 

뭔가 심플하면서 이쁘다.

이 문제의 힌트는 

라고 했는데 처음에는 잘 몰랐다. 페이지 소스도 보고 react.js state 확인 이라고 검색도 해봤지만 아무것도 없었다.

어떻게 state를 확인할까... 하며 main.~~~.chunk.js 확인을 해볼려고 했으나 코드가 너무 복잡하게 이루어져있어서 확인이 불가능 하였다.

 

그럼 이 문제는 어떻게 푸는 걸까?

 

크롬 확장 프로그램에 react developer tools 이라는 프로그램이 있다. 이걸 이용해서 풀면 된다.

 

빨간색 동그라미 친 부분이 react developer tools 설치로 인해 생겨난 새로운 탭이다.

저기서 components 탭을 누르면 

flag가 나온다.

 

jhyeon님이 만드신 Execution 이라는 문제다.

이 문제같은 경우 LFI 까지 동작하는걸 확인을 했으나, url에선 flag 라는 특정 단어를 필터링 하고 있었다.

그래서 삽질도 많이 하고 이것저것 동작을 살펴봤지만 풀지 못했던 문제다.

 

나중에 알게된 내용은 이 사이트에서 요구하는 취약점은 php session RCE + LFI 취약점을 이용한 문제다.

LFI로 /etc/passwd 파일이 읽어지는건 확인을 했으나 저런 취약점이 있었는건 처음 알게 되었다. (열심히 최신동향좀 볼걸...) 고양이 귀엽다

 

php session rce 취약점에 대해 검색도 하고 완전한 내것으로 만들려고 했지만 뭔소린지 몰랐다.

 

welcome.php?page=/var/lib/php/sessions/sess_[내 세션]을 입력하면 id 값을 출력해준다. 그럼 이제 뭘 해야할까?

RCE 취약점을 요구하므로 우린 처음부터 회원가입을 할 때 php코드로 명령어를 실행하게끔 만들어야 한다.

 

로그아웃을 하고 회원가입 페이지로 돌아가서 회원가입을 할 때 

<?php system("ls");?> 를 아이디로 넣고 비밀번호는 아무거나 입력을 해준다음 다시 저 주소로 들어가보자.

 

그러면 현재 디렉토리 안에 있는 내용들을 출력해준다. 자 그러면 이제 아이디를 cat flag.php 로 해보자.

 

그럼 아무것도 안뜰것이다. 당황하지 말고 ctrl + u를 눌러서 맨 밑을 확인해보자.

 

flag가 나왔다.

 

왜 아무것도 안뜰까?

 

php는 html에서 주석처리가 되어버리기 때문이다.

 

우린 이렇게 오늘도 새로운 취약점을 알게 되었다.

php session rce 취약점. 이 취약점이 발동하기 위한 조건이 있다.

 

1. php로 제작이 되어야한다.

2. LFI 가 가능해야한다. (/var/lib/php/sessions/sess_[내 세션]에 접근이 가능해야함.)

3. 회원가입할때 id가 rce 공격이 일어나게끔 코드를 작성해야한다.

 

'CTF write up' 카테고리의 다른 글

SHELL CTF WEB write up  (0) 2021.06.07
[vishwaCTF] WEB write up  (0) 2021.03.15
[Hacking Camp] CTF write up  (0) 2021.02.21
HACON CTF write up  (0) 2020.09.27
[HackCTF] 가위바위보 문제풀이  (0) 2020.08.24
Comments