52번 문제에요.
배점은 400점, 분야는 명령어 + DB 에요.
admin page 에 접근을 하래요.
게스트는 guest / guest
고 프록시를 주네요.
그냥 admin page 에 들어가보면
인증이 필요하대요.
guest / guest
를 넣어보면?
안뇽 게스트
넌 어드민이 아니야
래요.
거기에다가 괜히 프록시를 준것같지가 않아서
admin 으로 인증해야함 + 로컬로 접근해야함
두개를 다 만족시켜야 문제가 풀리나봐요.
그러면 이제 프록시를 볼게요.
흐ㅡㅡㅡㅡㅡ음
어디에 접근할건지를 get 방식으로 전달하니
?page=/admin/
으로 바꿔주면
인증이 없으니 로그인에 실패해요.
어떤식으로 인증이 이루어지는지 피들러를 켜서 보니
딱봐도 BASE64 처럼 생긴게 있네요.
디코딩을 해보면
id:pw
를 BASE64로 인코딩해서 넘긴다는걸 알수있네요.
그러면 인증이 어떤식으로 돌아가는지도 알았으니
프록시 헤더를 건들여서 인증을 해야겠네요.
/admin/ HTTP/1.1%0d%0aCookie: PHPSSID=...
%0d%0a 로 개행해서
필요한 헤더를 채워넣고
마지막에 %0d%0a%0d%0a 로 요청을 끝내버리면?
guest 로 로그인이 됬네요.
그러면 이제
admin' #:aaa
를 BASE64로 인코딩해서
select {????} from {table} where id='admin' #' and pw='aaa'
가 되게끔
헤더에 넣어주면?
FLAG{Server_Side_Request_Forgery_with_proxy!}
이제 FLAG 를 Auth 에다가 넣어주면?
빠밤!
문제가 풀렸네요.
'연구글 > webhacking.kr' 카테고리의 다른 글
webhacking.kr Challenge(old) 54 / Computing (0) | 2020.08.25 |
---|---|
webhacking.kr Challenge(old) 53 / DB (0) | 2020.08.25 |
webhacking.kr Challenge(old) 51 / DB (0) | 2020.08.25 |
webhacking.kr Challenge(old) 50 / DB (0) | 2020.08.24 |
webhacking.kr Challenge(old) 49 / DB (0) | 2020.08.24 |