level24[old]

2022. 3. 19. 02:56Site/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