이번문제는 드디어 문제같은 문제를 만났다.ㅎㅎ
일단 포트를 스캔하면 80 포트만 열려있다.
브라우저로 가서 확인해보면 메인페이지가 뜨고, 값을 입력해도 아무 반응이 없다. 페이지 소스를 보면, 최하단에 난독화된 js 소스코드가 있다. (이거 사진 못찍음)
문제이름이 git_happen 이기떄문에 바로 웹루트경로에 .git 폴더가 있을 줄 에상했다. 이문제는 rootme 에 있다.
여튼 wget 으로 recursive 한 옵션을 주고 git 폴더를 모두 받고
들어가서 git 명령어를 실행해보면 10 개정도의 커밋정보와 마지막 커밋정보를 볼 수 있다.
아래 두개의 bash 문 중 하나를 사용하면 커밋정보를 모두 상세하게 볼 수 있다.
$while read logs; do git show $logs; done <<< $(git log | grep commit | sed -e 's/commit //g' -e 10d) > ../../git_showAllLogs.txt
$git log | grep commit | sed -e 's/commit //g' -e 10d | while read logs; do git show $logs; done > ../../git_showAllLogs.txt
커밋들중 하나는 난독화되기 전 js 의 원문이 보이는데 id 와 passd 가 유출됨을 확인가능하다. 또한 중요한것은 cookie 를 검증하는데 login=1 을 꼭 설정해주어야한다는 것이다.
소스코드 말대로 입력폼에 admin 과 passwd 를 넣고 cookie 값으로 login=1 을 설정해준다.
여기서 조심해야할 것은 login 버튼을 눌러도 아무반응이없다. 소스코드를 보면, 이는 폼에 값을 입력하고 직접 /dashboard.html 로 이동하면 문제를 풀 수 있다.
flag 는 폼에서 입력했던 passwd 라고한다.
clear