-
|webhacking.kr| #5Wargame Site/Webhacking.kr 2019. 7. 2. 14:59
좌측의 Login 을 클릭하면 다음과 같은 페이지가 나온다.
우측의 Join 을 클릭하면 다음과 같은 페이지가 나온다.
하지만, join 을 누르면 Access_Denied 를 볼 수 있다. 혹시나 불충분한 인가의 가능성을 믿고 mem/join.php 으로 접근해보았다.
그랬더니 접근이 가능했다. 다음과 같은 난독화 script 가 있어서 변환을 시켜주었다.
if( eval(document.cookie).indexOf(oldzombie) == -1 ) { bye; };
if( eval(document.URL).indexOf(mode=1) == -1 ) { alert('access_denied') };
else{
[ Join ]
}
Join 으로 들어가기 위해서 필요한 두 가지 조건이 있다.
cookie 값으로 oldzombie 를 가지고 있어야한다는 것과, URL 내부에 mode=1 이라는 문자가 들어있어야한다는 것이다.
URL 내부에 넣을 수 있는 방법으로는 간단하게 인자로 위장해서 보내는 방법이 있을 것이다.
조건을 충족시켜주면 난독화 밑 부분이 실행되면서 다음과 같은 Join Page 가 나온다.
그렇다면, admin 을 등록하고 login 해버리면 되지 않을까?
admin 이 이미 존재한다고한다.
그렇다면 회원가입 절차에서는 admin 이 아니지만, where 절에서는 admin 으로 동작하게 해야할 것이다.
여기서 주목해야할 것은 "문자열" 과 "문자열" 의 비교, Column 과 "문자열" 의 비교는 차이가 있다.
'admin' 과 'admin ' 은 다른 값이지만, id 와 비교할 시에는 id 자료형태에 맞춰진 형태로 들어간다.
개인적인 추측으로 id 는 varchar(5) 로 설정되어 있는 듯하다.
5 글자에서 잘리는 것이다.
이러한 방식으로 DB 의 내용을 바꿔놓을 수 있다.
5글자 이상의 글자를 입력할 수 있도록 조정한 뒤, 공백을 추가해서 바꿔주었다.
admin 뒤에 공백을 하나 두고 가입을 해보았다.
가입완료!!
이제 로그인을 해보자!
clear ~
'Wargame Site > Webhacking.kr' 카테고리의 다른 글
|webhacking.kr| #7 (0) 2019.07.02 |webhacking.kr| #6 (0) 2019.07.02 |webhacking.kr| #4 (0) 2019.07.02 |webhacking.kr| #3 (0) 2019.07.02 |webhacking.kr| #2 (0) 2019.07.02 댓글