워게임/HackTheBox

[HackTheBox] FreeLancer - 웹해킹 / SQL Injection / LFI / dirb

SecurityMan 2023. 7. 14. 11:00

 

HackTheBox 에서 제공하는 웹해킹 문제

 

MEDIUM 난이도이지만 꽤 어렵다고 느꼈다.

 

반응형

 

 

문제페이지에 접속하면 이런 화면이 나온다.

 

어떤 프리랜서가 본인의 포트폴리오를 올려놓은 이력서 웹사이트이다.

 

 

F12를 눌러 개발자 도구를 통해 HTML 을 살펴봤다.

 

주석으로 숨겨진 경로가 하나 보이는데

 

portfolio.php?id=2 이런식으로 되어 있는것을 보고

 

id 파라미터를 통해 뭔가 할 수 있을거라고 생각했다.

 

 

해당 URL 로 접근해서 id 파라미터를 변경시켜 봤다.

 

?id=1 이라고 하면 아래쪽에 Log Cabin 뒤에오는 숫자가 1로 바뀐다.

 

2, 3 으로 바꾸면 마찬가지로 Log Cabin 2, 3 이런식으로 바뀐다.

 

 

id=1 or true 라고 입력했더니

 

SQL Injection 이 성공한 듯

 

Log Cabin 1, 2, 3이 모두 출력된다.

 

 

다음으로 ?id=1 union all select 1,2,3 이라고 입력해봤더니

 

컬럼 수가 3개인듯 오류가 나지 않고 이렇게 잘 출력된 모습을 확인할 수 있었다.

 

 

다음으로 

 

1 union all select 1,2,table_name from information_scheam.tabes 라고 입력해서

 

safeadmin 이라는 테이블이 존재한다는 것을 확인했고,

 

 

1 union all select 1,2,column_name from information_scheam.columns 라고 입력해서

 

username, password 컬럼이 있다는 것을 확인했다.

 

 

1 union all select 1,2,username from safeadmin

1 union all select 1,2,password from safeadmin 으로

 

username 은 safeadm 인 것을 알아냈고,

 

password는 암호화 되어서 저장된 것을 확인했다.

 

password 맨 앞에 $2y 는 blowfish 로 암호화 되었다는 뜻이다.

 

 

crack 해야되는건가 싶어서 hashcat 을 이용해서 시도해봤는데

 

시간이 꽤 지나도 안나와서 아니라고 판단했다.

 

 

다른게 뭐가 있을까 한참 찾다가

 

dirb 도구를 이용해서 숨겨진 디렉토리를 검색해봤다.

 

그랬더니 /administart 경로가 있는것을 확인할 수 있었다.

 

 

해당 경로로 가보면 이렇게 로그인 창이 뜨는데

 

이걸 어떻게 해결해야하나 검색해보니

 

 

SQL Injection 을 통핸 LFI 공격이 가능하다는 것을 알아냈다.

 

1 union all select 1,2,load_file("/var/www/html/administart/index.php") 라고 입력했더니

 

아까 Log Cabin 페이지 아래에 로그인 창을 불러올 수 있었다.

 

F12 개발자도구에서 소스를 확인해보니

 

로그인이 성공할 경우 panel.php 페이지로 이동하는 것 같았다.

 

 

1 union all select 1,2,load_file("/var/www/html/administart/panel.php") 을 입력해

 

해당 페이지를 불러오니

 

플래그를 확인할 수 있었다.

반응형