Webhacking.kr 6번
·
Webhacking.kr
6번 문제 메인 페이지, "base64" 인코딩이 힌트인 것을 알려주고 index.phps 페이지를 통해 원본 소스를 볼 수 있다. // $val_id, val_pw 변수에 각각 "guest, "123qwe" 문자열 저장 // 반복문이 20번 돌면서, $val_id, val_pw 변수를 base64 인코딩함 // 20번 인코딩 된 문자열에서 특정 문자를 다른 문자로 치환함 // $val_id, val_pw 변수에 동일한 치환값이 적용됨 // 20번 인코딩 -> 문자 치환 결과 문자열을 쿠키에 "user", "password" 값으로 세팅 // $decode_id, decode_pw 변수에 쿠키 "user, "password" 값 저장 // 특정 문자를 치환 (인코딩 과정과 반대임) // 반복문이 20번 ..
Webhacking.kr 5번
·
Webhacking.kr
2가지 메뉴가 있는데 우선 소스부터 분석한다. "Login" 메뉴를 누르면 "mem/login.php" 페이지로 이동되지만, "Join" 버튼을 누르면 에러가 발생한다. 적당한 게싱을 통해 "mem/join.php" 페이지를 유추한다. 유추한 페이지로 가면 빈 화면만 보이는데, 소스를 분석해야 한다. 뭔가 겁나 복잡하다. 알파벳들을 이상한 문자에 대입하고 아래쪽에서 비교하는 듯 하다. 다행히 콘솔에서 자동으로 복호화가 되기 때문에 부분 부분 복호화를 진행하면서 분석한다. 위 사진에서 얻은 평문을 기반으로 하면 아래와 같은 결과를 얻을 수 있다. if(eval(document.cookie).indexOf(oldzombie)==-1) { bye; } if(eval(document.URL).indexOf(mo..
Webhacking.kr 4번
·
Webhacking.kr
base64로 인코딩 된 문자열을 볼 수 있다. 디코딩 하면 암호화 된 문자열이 나오는데, 길이를 보면 SHA 일 거 같은 느낌이 든다. 해쉬함수는 일방향 함수이기 때문에 이론적으로 복호화가 불가능하다. 따라서 레인보우 테이블 등을 이용하여 복호화를 진행해야 한다. 복호화 하면 또 다른 SHA1 값이 나온다. 이전 사진에서 얻은 SHA1 값을 또 다시 복호화하면 "test" 문자열이 나온다. 4번 문제 페이지에서 최종 결과 "test"를 입력한다.