여러모로 멘탈붕괴를 제대로 먹여준 화이트햇..
그중 웹 문제는 타임 오버로 풀게되어 인증을 하지 못했엇는데 그 아쉬움을 포스팅으로 풀어보려 합니다 ㅋㅋ
문제 페이지는 이렇게 생겻는데 카라의 한승연 팬페이지를 컨셉으로 잡은 취약점이 존재하는 페이지입니다.
왠지 꼭 비밀글을 읽어야 할거같은 분위기라서 분위기에 따라가기로 했습니다.
우선 풀이방법을 한줄요약하면 SQL Injection과 SESSION 조작입니다.
팬페이지에는 LFI 취약점이 존재하며, INC 파일을 include 시키는 방식이었습니다.
위 파라미터에 아무 값을 삽입하면 include 에러가 발생하며, inc 파일을 찾을수 없다고 나오는데, 그 에러 메세지를 찾아
inc 파일들을 살펴볼 수 있었습니다. inc 파일에는 웹페이지의 소스코드가 담겨있엇으며, 대부분 페이지의 소스를 빼올 수 있었습니다.
예선 개인전의 경우 로그인 페이지에서 한글을 집어넣어 세션을 변조시키는 문제였는데 단체전에선 취약점이 패치되고 어드민 페이지에서 취약점이 발생합니다.
어드민 페이지엔 아무런 필터링이 없어서 그냥 sql injection이 가능햇는데 이 부분에서 더이상 뭘 해야 할지 생각이 안나서...
어드민 페이지에 세션을 건드리는 것을 보아 세션 문제로 방향을 잡고 시작했습니다.
어드민 로그인 페이지에into outfile 을 이용하여 세션 파일 위치인 /var/lib/php5에 sess_***** 파일을 생성하는데
계속 로그인 실패라고 떠서.. 몇시간 삽질해보고 난 다음에 생각난게 return 값이 없어서.... 였다는 것이 떠오르고;;;
load_file 과 outfile 로 여러번 건드린 끝에 세션 원본 형식을 얻어내는데 성공하고 [세션파일 생성 - phpsessid 변조 - 변조한 세션 로그인]
일정한 형식을 바꾸고 비밀글이 보이는 조건을 맞춰줘 가면서 아이디를 readme 로 바꾸고 로그인을 시도했습니다.
여러번 삽질 끝에.. readme로 로그인을 성공했습니다.
0' union select 'memdata|s:85:"a:4:{s:3:"idx";s:1:"1";s:2:"id";s:6:"readme";s:2:"pw";s:3:"123";s:5:"level";s:1:"1";}";' into outfile '/var/lib/php5/sess_sweetchip'#
값을 바꿀때마다 옆에 붙은 숫자도 맞춰줘야 해서 나름 노가다 작업이었습니다.
기쁜마음에 key를 얻으려고 비밀글을 읽는 순간...; 노가다의 향기가 오고 새벽이라 빨리 자고싶은데 잠도 못자고ㅠㅠ..
쨋든 다시 방법을 생각해보는 도중 이를 통해 sql injection으로 key를 빼오는 방법을 택했습니다.
세션에 인젝션 페이로드를 삽입해 공격해서 readme 가 있는 페이지에서 sql 구문을 참조할때 인젝션 시키는 것이었습니다. [뭐라 설명해야하지..]
하지만 인젝션 페이로드를 넣으려는 부분이 싱글쿼터로 싸여 있어 싱글쿼터를 하나 더 붙여줘야 했던 상황이엇는데
고민 하다가 hex로 집어넣기로 했습니다.
대회가 끝난 다음 한숨한번 쉬고 끝을 보자 해서 나머지 과정을 시행 했습니다.
memdata|s:140:"a:4:{s:2:"id";s:6:"readme";s:2:"pw";s:3:"123";s:5:"level";s:1:"1";s:3:"idx";s:55:"0' union select k3yk3y from k3y_1s_h3r3.k3yk3y where 1#";}"; # key!!
위 키가 진짜인지 아닌지는 인증을 못해 알순 없지만.. 대충 맞다고 예상 하고 있습니다 ㅋㅋ
30분만 시간이 더 있엇다면. .ㅠㅠ
Flag : 488821687a1efe563e073fca374e439a
2013 CSAW CTF Exploitation 200 [exploit] (0) | 2013.09.23 |
---|---|
2013 CSAW CTF Exploitation 100 [exploit] (0) | 2013.09.23 |
2013 YISF 순천향대학교 해킹방어대회 예선 문제풀이 (8) | 2013.08.21 |
2013 juniorCTF Level9 write-up (0) | 2013.07.29 |
2013 JuniorCTF 주니어 해킹방어대회 Write-ups (4) | 2013.07.29 |