여러분 안녕하세요. POCI입니다.
이번 시간에는 Webhacking.kr의 6번 문제를 풀어보도록 하겠습니다.
1. 사이트 둘러보기
6번 문제에 들어가면 ID와 PW가 나오고, HINT : base64라는 문구가 나옵니다.
노란색으로 된 index.phps를 클릭하면 php 파일로 넘어갑니다.
파란색으로 처리된 php 부분을 해석하는 것이 핵심인 거 같습니다.
2. 코드 해석하기
이 부분은 user 쿠키가 없으면 실행되는 부분입니다.
해석해보면 $val_id에는 guset를 넣고, &val_pw에는 123qwe를 넣은 후 base64 인코딩을 20번 실행하고, 각각 1부터 8까지 다른 문구로 대체한다는 의미입니다.
쿠키 확인 결과 user와 password 쿠키가 있음을 확인할 수 있습니다.
이 부분이 문제를 풀 수 있는 부분인 거 같습니다.
해석을 하면 user와 password 부분의 특수문자를 숫자로 대체하고, 20번 base64 디코딩을 한 값이 user와 password가 각각 admin이면 문제가 풀린다는 의미입니다.
쉽게 말해, 지금의 user와 password의 값은 guest, 123qwe가 들어있는 상태에서 base64 인코딩과 암호화가 되어있는 상태입니다.
따라서 복호화와 base64 디코딩을 한 후 user에는 guest, password에는 123qwe가 있으므로 문제가 풀리지 않습니다.
그렇기에 admin을 base64 인코딩을 20번 하고, 암호화를 한 값을 user와 password에 넣어준다면 문제가 풀린다는 의미입니다.
3. base64 인코딩 + 암호화
http://www.taeyo.pe.kr/base64.htm에서 admin에 base64 인코딩을 20번 실행합니다.
이제 위 문자열에서 각각에 맞는 치환을 하면 되는데... 문자열을 보니 제시돼있던 !, @, ^, &, *, (, )가 없습니다.
즉, 치환을 해주지 않아도 된다는 뜻입니다.
인코딩한 문자열을 EditThisCookie를 이용해 user, password에 넣어줍니다.
값을 바꾼 후 새로고침을 하면 문제가 풀렸다는 메시지를 보실 수 있습니다.
이번 강의는 여기까지입니다.
6번 문제는 php 해석 문제였기에, php만 해석하면 풀이과정이 보이는 쉬운 문제였습니다.
오늘도 수고하셨습니다.
정리
- index.php를 클릭하여 코드가 적힌 페이지로 이동
- php를 해석하여 알맞게 user와 password의 쿠킷값을 바꿔준다.
강의가 유익하셨거나 마음에 드셨으면 댓글과 좋아요 부탁드립니다.
궁금하신 점이나 질문은 댓글이나 메일 남겨주세요.
'Write Up > webhacking.kr' 카테고리의 다른 글
Webhacking.kr 문제풀이_Part8_8번 문제 (0) | 2019.07.09 |
---|---|
Webhacking.kr 문제풀이_Part6_5번 문제 (0) | 2019.07.04 |
Webhacking.kr 문제풀이_Part5_4번 문제 (0) | 2019.07.02 |
Webhacking.kr 문제풀이_Part4_3번 문제 (2) | 2019.06.26 |
Webhacking.kr 문제풀이_Part3_2번 문제 (0) | 2019.06.24 |