webhacking.kr 5번 문제를 풀어보도록 하겠습니다.
일단 5번 문제에 들어가게 되면 이렇게 2가지가 나옵니다.
Login과 Join이 있는데요
join을 누르시면 위와 같이 Access_Denied가 출력 됩니다.
여기서 url을 잘 보시면 mem 이라는 폴더에 join.php가 존재합니다.
저는 웹페이지 폴더만 보면 일단 디렉토리 리스팅을 시도하는 버릇이 있어서 ㅋㅋㅋ hint 페이지에 도달하게 됩니다. (디렉토리 리스팅을 관련한 문제가 좀 신기했어요)
실제 디렉토리 리스팅이 된것은아니고 아마 Errordocument를 설정 혹은 url을 검사해서 이런 페이지로 이동하도록 한건 아닐까 생각해봅니다.
아무튼 여거서 join.php를 누르게 되면 javascript의 영향을 받지 않고 들어올 수 있게 됩니다. 아마 들어가면 아무것도
안보이는 상태일꺼에요 소스보기를 해봅시다. !
잘 보이지 않지만 난독화를 해놨네요
이걸 하나하나 해석하면 시간이 엄청 걸립니다.
브라우저마다 console이 있습니다. ctrl+c, v
를 해서 하나씩 해석 하시면 됩니다.
잘 안보이시면 확대해서 보세요 ㅎㅎ
소스를 해독해보면 url에 mode=1이 있어야 하고, cookie 값에는 oldzombie가 있어야한답니다.
그러면 아래의 페이지를 보여주게 됩니다.
1. mode=1 (URL)
2. oldzombie(cookie)
이렇게 설정? 하고 join 페이지로 들어가게 되면
이렇게 뜹니다.
여기서 좀 많이 햇갈렸는데요
결국 페이로드를 말씀드리면
admin 이라는 글자는 필터링이 걸립니다.
근데 html 을 수정(글자 수)하고 admin+ (+는 공백입니다.)를 입력하면 회원가입이 되더라구요
회원가입을 login 페이지로 이동해서 내가 입력했던 admin과 pw를 입력하면 해결하게 되는 문제입니다.
제 생각에는 admin이라는 계정을 db 단에서 검사를 제대로 하지 않은 것 같습니다. 그래서 admin+(공백)으로 우회를 하면 admin 계정이 새로 만들어지는 것 같습니다.
(업데이트 되는지 아니면 계정이 하나 늘어나는지는 잘 모르겠습니다. 제 생각에는 아마 업데이트는 아닐꺼고 계정이 하나 늘어나는 것 같습니다.)
'Study > webhacking.kr' 카테고리의 다른 글
webhacking.kr 10번 (0) | 2017.03.01 |
---|---|
webhacking.kr 6번 문제 (0) | 2017.03.01 |
webhacking.kr 26번 문제 풀이 (0) | 2016.12.11 |
web hacking.kr 23번 문제 (0) | 2016.12.11 |
webhacking.kr level4 (1) | 2016.08.29 |
댓글