2022. 3. 19. 02:56ㆍSite/Webhacking.kr
이번시간에는 level24을 풀어보겠습니다
공부하는 입장이라 틀린것이 있더라도 양해부탁드리겠습니다
level24에 들어가니 client ip와 agent값이 나옵니다
그리고 Wrong IP!라는 문구도 보이네요
일단 view-source를 클릭해 소스코드를 봤습니다
extract함수는 배열속의 키값을 변수화 시켜줍니다.
ex) $str[x]=3; $str[y]=4; extract(str) -> x=3, y=4출력
$_SERVER와 $_COOKIE값을 변수화 시켜줍니다.
$REMOTE_ADDR를 ip변수에다 저장하는데 $REMOTE_ADDR는 수퍼전역변수인 $_SERVER의 내부속성으로 현재보고있는 ip주소를 반환합니다.
$HTTP_USER_AGENT를 agent변수에다가 대입합니다. $HTTP_USER_AGENT도 $_SERVER의 내부속성으로 웹접속 환경 정보를 담고있습니다. 즉 $REMOTE_ADDR와 $HTTP_USER_AGENT가 첫화면에서 본 client ip값과 agent값이네요.
$REMOTE_ADDR의 값이 있다면 if문을 실행하는데 $REMOTE_ADDR을 htmlspecialchars을 통해 HTMLentites로 바꿔줍니다. str_replace를 거쳐 $HTTP_USER_AGENT가 있다면 마찬가지로 htmlspecialchars을 통해 HTMLentites로 바꿔줍니다.
핵심은 이부분인것 같습니다. str_replace를 통해 문자열을 바꿔줍니다
아마 ip주소를 127.0.0.1로 바꿔줘야 해결될것같은데
12, 7. 0.이 공백문자로 치환되어 결국에는 1로 밖에 안남을것 같네요...
한번 테스트 해보기 위해 edittihscookie를 이용해서 REMOTE_ADDR쿠키를 추가시켜주었습니다
127.0.0.1로 입력하니 예상했던데로 1밖에 출력이 안되네요
그럼 어떻게 해결할까 생각해보다 str_replace에서 ..->. / 12 -> "" / 7 -> "" / 0. -> "" 으로 치환되니
112277...00...00...1값으로 입력을 해주면
112277...00...00...1 빨간색으로 표시된 부분은 공백처리되고 ..은 . 이 되니 원하는 127.0.0.1로 나옵니다
'Site > Webhacking.kr' 카테고리의 다른 글
level25[old] (0) | 2022.03.21 |
---|---|
level1[old] (0) | 2022.03.21 |
level18[old] (0) | 2022.03.18 |
level26[old] (0) | 2022.03.17 |
level16[old] (0) | 2022.03.16 |