-
[Webhacking.kr] Challenge 6Security/Wargame 2014. 10. 7. 00:33336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
안녕하세요.
오늘은 Webhacking.kr 의 6번 문제 풀이를 작성해보도록하겠습니다.
6번 문제에 접속하시면 다음과 같은 화면을 보게됩니다.
ID: guest
PW: 123qwe
라는 내용을 보게 되고,
Hint 는 base64 라고 주어졌습니다.
일단 소스를 한번 보도록 하죠
index.phps 로 들어갑니다.
위와 같은 소스를 보게 됩니다.소스를 분석해 보도록하죠쿠키값이 없을 경우id는 guestpw는 123qwe로 선언 후각 값을 가지고 base64 Encode를 20번 합니다.그리고 나온 결과값에서1 -> !2 -> @3 -> $4 -> ^5 -> &6 -> *7 -> (8 -> )로 치환을 하게 됩니다.그리고 치환된 값을user에 id를 password에 pw를 넣어주고 새로고침을 시킵니다.그럼 문제를 클리어하려면 어떤 조건이 필요한지 마지막 쪽을 보시면if($decode_id=='admin' && $decode_pw=='admin')이고, 위에부터 보면 쿠키값을 읽어와위에서 치환했던 것들을 반대로 치환후 base64 Decode 를 20번 해줍니다.즉 원래 문자열로 원복하는거죠.그래서 나온 원본문자열이 admin 이면 문제를 해결할 수 있습니다.즉 우리가 이 문제를 해결하려면위에서 처음 id,pw 를 인코딩/치환 한것처럼admin 이라는 문자열을 20번 인코딩/치환 한 후쿠키값을 변조해주시면 문제를 해결할 수 있는 겁니다.해당 인코딩/치환, 치환/디코딩 을 구현한 파이썬 스크립트를 첨부합니다.'Security > Wargame' 카테고리의 다른 글
[Webhacking.kr] Challenge 9 (5) 2015.08.05 [Webhacking.kr] Challenge 7 (0) 2014.10.07 [Webhacking.kr] Challenge 5 (1) 2014.07.10 [Webhacking.kr] Challenge 4 (4) 2014.07.10 [Webhacking.kr] Challenge 3 (2) 2014.06.19 댓글