WEB-SERVER) 10점 문제
Wargame/Root-Me

WEB-SERVER) 10점 문제

1.HTTP- OPEN REDIRECT

: Find a way to make a redirection to a domain other than those showed on the web page.

-> 웹페이지에서 보여지고 있는 도메인이 아닌 다른 도메인으로 리다이렉션 할 수 있는 방법을 찾아라.

 

 

: 초기 화면을 확인할 수 있다. 우선 소스 코드를 살펴보자.

 

: 각각 링크가 걸려져 있는 버튼이 생성되어 있는 것을 확인해 줄수 있다. 

=>URL과 MD5로 인코딩 된 해쉬로 href 링크가 생성되어 있으므로, 여기에 네이버로 리다이렉션 해주는 새로운 버튼을 생성해주기로 했다.

 

 

=> naver로 생성된 버튼을 누르면 flag페이지가 순식간에 넘어가고 네이버로 리다이렉션 된다. 따라서 flag 페이지 내용 도 잡아주기 위해 웹 프록시를 잡아주는 Burpsuite를 켜서 내용을 확인해보자.

 

 

flag 가 잡혀있는 것을 확인할 수 있다.

 

+) burpsuite를 활용한 다른 솔루션

=> 애초에 burpsuite로 프록시를 잡은 후에 Request 창에서 url, hash 값을 변조해주면 된다.

    따로 웹 페이지에서 버튼을 생성하지 않고도 리다이렉션이 가능하다.

 

 

 

2. HTTP- User-Agent

:Admin is really dumb...(닉값하는 문제)

접속해보면, admin브라우저가 아니라고 하면서 wrong user-agent라고 한다.

 

:Burpsuite로 user agent를 확인해보자.

현재 사용하고 있는 브라우저인 크롬의 정보들을 확인할 수 있다.

그냥 User-Agent를 admin으로 바꿔주기만 하면 된다.

실화..?

forward해주면 플래그를 확인할 수 있다. 말장난 그 자체...

 

3. Weak Password

 

사용자 이름과 비밀번호를 입력하는 창이 뜨고, 이를 유추해야 하는 문제 이다.

가장 유추하기 쉬운 아이디와 패스워드를 몇개 입력해보면 금방 풀리는 문제이다.

 

+) 참고하면 좋은 문서.

=> gizmodo.com/the-25-most-popular-passwords-of-2018-will-make-you-fee-1831052705

 

The 25 Most Popular Passwords of 2018 Will Make You Feel Like a Security Genius

For the last seven years, SplashData has revealed its annual list of the most commonly used passwords of the year. This time around, the results reveal that, uh, we still have work to do.

gizmodo.com

 

+) Burpsuite의 bruteforce 공격을 이용해도 풀리는 문제라고 한다. 하지만 id/pw 가 그정도로 복잡하지 않다.

 

 

 

4. PHP- Command Injection

이 문제를 풀기 전 우선 Command Injection 에 대해 알아볼 필요가 있다.

참고) https://noirstar.tistory.com/267

 

Command Injection 이란? (커맨드 인젝션)

3. Command Injection Ÿ Command Injection Command Injection 은 웹 애플리케이션에서 시스템 명령을 사용할 때, 세미콜론 혹은 &, && 를 사용하여 하나의 Command를 Injection 하여 두 개의 명령어가 실행되게..

noirstar.tistory.com

 

 

Command Injection은 웹 애플리케이션에서 시스템 명령을 사용할 때 세미콜론(;) 또는 &, &&를 통해 

커맨드를 입력하여 두 개의 명령어가 실행되기 하는 공격이다.

예를 들어, 그림의 웹 애플리케이션에서는 cat명령어를 이용하여 서버의 파일을 사용자 입력과 함께 보여주도록 한다.

해커는 이 기능을 악용하여 리눅스에서 두개 의 명령을 한줄에 동시에 실행할 수 있도록 하는 연결자 세미콜론(;)을 

이용해 ifconfig명령을 실행시키는 명령을 보낸다.

이 이후에 사용자로부터의 요청을 아무런 검증 없이 서버에 전송하고, 서버의 민감 정보를 그대로 노출하게 된다.

이후 해커가 리눅스 서버의 root 권한을 획득할 수 있게 된다.

 

=> 이 문제는 command injection를 그대로 실습해볼 수 있는 문제이다.

 : Find a Vulnerability in this service and exploit it. The flag is on the Index.php file.

 

 : 문제에 맨 처음 나와있듯이 IP 주소를 하나 전송해보자.

 

 해당 아이피 주소에 대한 데이터들을 확인해 볼 수 있다. 

이 아이피 주소 뒤에 리눅스 명령어들을 몇개 확인해보자.

 

=> 127.0.0.1; ls

=> index.php 라는 파일을 확인할 수 있다.

 

: 위 파일을 열어보는 127.0.0.1; cat index.php 명령어를 실행해보자.

 => 프록시를 잡아 확인하면 index.php 파일 안의 flag를 확인할 수 있다.

 

=> command injection이 위험한 이유는 아예 운영자가 해커에게 해킹 공격을 할수 있는 웹 쉘을 열어준거나 다름 없기 때문이다. 서버에 영향을 끼칠수 있는 명령어는 사용이 아예 불가능하도록 필터링해주는 게 좋을 것 같다.

 

'Wargame > Root-Me' 카테고리의 다른 글

Web-Client) javascript 관련 문제  (0) 2020.01.18
Web-Server) improper redirect  (0) 2020.01.16
Web-Server) Backup file  (0) 2020.01.16
Web-Server) HTTP header  (0) 2020.01.16
Web-Server) Directory Indexing  (0) 2020.01.15