들어가보면 다음과 같은 로그인페이지가 나온다.
a/a 로 로그인시도해보면 guest로 로그인되고 메인페이지로 리다이렉트된다.
취약점 벡터는 page파라미터에서 LFI가 터져 쉽게 찾을 수 있었다.
먼저 php://filter를 사용해서 user.php 코드를 확인해봤다.
include전에 filter_directory라는 함수를 호출하는걸 확인할 수 있었고 함수가 존재하는 function.php 코드를 확인해봤다.
filter_directory함수에서 "flag","manage","ffffllllaaaaggg" 문자열을 필터링하고 있는것을 확인할 수 있었다. 근데 해당값을 parse_url을 통해 값을 얻어와 비교하고 있어 //을써서 우회 후 ffffllllaaaaggg 파일을 다운로드 해 코드를 확인했다.
m4aaannngggeee라는 문자열을 찾았다고 하는걸 보니 파일명인가싶어서 lfi로 다시 코드를 확인해봤다.
코드 upload2323233333.php 코드가 있을거라고 생각하고 lfi 및 접근을 시도해봤지만 존재하지 않는 듯 했다. 그래서 일단 위 코드의 html파일에 접근하기 위해 다음과 같이 호출을했더니 업로드 가능한 페이지가 나왔다.
파일 업로드를 해보니 요청한 파일을 내용을 html내에 아예 박아버리고 있어 업로드를 통해서 시스템권한을 따기는 힘들어보였고 업로드 처리해주는 페이지의 코드를 확인해봤다.
코드를 보면 업로드 후 파일내용을 base64로 인코딩해서 img태그에 박아넣고 업로드된 파일은 삭제하는걸 확인할 수 있었다. 이 때 파일명이 system 함수에 동적으로 들어가 Code Injection이 가능했다.
요런식으로 현재폴더내 파일을 확인해봤는데 flag관련된 파일을 딱히 없는것 같았다.
상위폴더를 확인해봤더니 flag관련 파일이 존재했고 해당 파일내용을 보니 플래그가 있었다.
'CTF > Writeup' 카테고리의 다른 글
SunshineCTF Evaluation (0) | 2018.04.07 |
---|---|
N1CTF 2018 77777 2 (0) | 2018.03.13 |
N1CTF 2018 77777 (0) | 2018.03.12 |
Truststealth CTF 2018 Custom Storage (DelspoN) 500 (0) | 2018.03.08 |
Pragyan CTF 2018 animal-attack(200pts) (0) | 2018.03.04 |