Webhacking.kr Challenge 5 풀이.
Login을 누르고 임의로 id랑 password를 쳤는데 위와 같은 메시지가 등장한다.
Join을 누르니 위와 같이 Access Denied이라는 문구가 등장한다.
일단 소스를 본다.
script 안쪽을 보면 function no ==> Access_Denied가 나오는 것은 아까 눈으로 확인한 부분이고.
function move 부분을 보면 mem/ 디렉터리에 login.php라는 것이 있다. 그럼 아까 join.php라는 것도 있고 총 2개가 있는 것.
즉 회원가입을 하고 admin으로 로그인을 해야 문제를 풀 수 있다는 뜻.
일단 mem/ 디렉터리가 뭔지부터 확인.
확실하게 mem/ 디렉터리에 join.php, login.php가 있다는 것을 한 번 더 정확히 알 수 있다.
먼저 join.php부터 눌러본다.
아무...아무것도 없다. 혹시 몰라서 관리자 도구를 클릭.
당황스럽게도 난독화가 심하게 되어 있다.
개발자 도구에서 Console창을 이용해도 되고,python을 이용해도 되고, notepad++ 같은 프로그램을 써도 된다.
소스 코드를 보면 document.cookie 값에 oldzombie라는 것이 있어야 하고, 없으면 bye!
indexOf() 함수는 패턴을 찾지 못하면 -1 반환.
document.url에서 mode =1이란 구문을 찾아서 찾지 못하면 Access Denied이 등장하고,
찾게 되면 else에 해당하는 구문들을 write하게 된다. oldzombie라는 쿠키를 만들어 임의의 값을 넣어두고
join.php 페이지 url에 'mode=1'를 만든다.
그래야 join 페이지가 열릴 거 같다. 일단 EditThisCookie를 이용해 oldzombie를 만든다.
그리고 join.php?mode=1을 입력.
Cf) ?가 들어가는 이유는 http://allblackk.tistory.com/195?category=744732에 적어놨다.
admin으로 회원가입해야 문제가 풀린다고 했으니 admin으로 가입.
이미 admin이 존재한다고 한다.
다른 것을 임의로 써도 안 된다.
아까 소스 코드 볼 때 maxlength=5라고 설정되어 있는 것을 봤다.
이를 임의로 maxlength=10로 수정한다.
다시 가입한다.
다시 첫 페이지를 들어가서 로그인하면 문제가 끝난다.
'# Related site issues > WEBHACKING.KR' 카테고리의 다른 글
Webhacking.kr Challenge 3. (0) | 2018.05.12 |
---|---|
Webhacking.kr Challenge 7. (0) | 2018.05.12 |
Webhacking.kr Challenge 11. (0) | 2018.05.12 |
Webhacking.kr Challenge 47. (0) | 2018.05.11 |
Webhacking.kr Challenge 42. (0) | 2018.05.06 |