Webhacking.kr 7번
·
Webhacking.kr
7번 문제 페이지 소스 화면, 주석으로 "admin mode : val=2" 라고 적혀있다. 물론 그냥 URL 부분에 "val=2" 입력하면 안된다. index.phps 페이지에서 소스 분석을 진행한다. URL 에서 "get" 파라미터로 받은 값을 $go 변수에 저장한다. (입력 받지 않으면 자동으로 1 세팅) $go 변수 값을 다시 $ck 변수에 저장한다. $ck 변수 값에서 '*', '/' 문자가 발견되면 '' 으로 치환한다. $ck 변수 값에서 "--", "2", "50", "\+", "substring", "from" 등의 문자열이 발견되면 오류가 발생한다. $ck 변수 값에서 공백(%20)이 발견되면 오류가 발생한다. 1 ~ 5 사이 임의의 값을 $rand 변수에 저장한다. $rand 변수 값에..
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..