[24번(old)] Write-Up
Web/Webhacking.kr

[24번(old)] Write-Up

반응형

처음 들어가게 되면 이런 화면이 보입니다.

Wrong IP! 라는 문구가 왠지 저한테 IP를 바꿔야 한다고 말하고 있는 것 같군요.

 

그래서 일단 view-source를 통해 소스를 보기로 했습니다.

여기서 주목해야 할 점은 바로 extract(\$_SERVER), extract(\$_COOKIE) 입니다.

php에서 extract() 함수는 배열 속의 키 값을 변수화 시켜줍니다.

REMOTE_ADDR, HTTP_USER_AGENT 같은 변수들이 변수화되었다는 것을 알 수 있습니다.

 

(저는 나중에 안 사실이지만, \$_SERVER보다 \$_COOKIE가 나중에 선언되었기 때문에 cookie를 통해 조작이 가능한 것이었습니다.)

 

풀이 방법을 먼저 말해버린 것 같지만 아무튼 cookie를 조작해야 한다는 것을 알게 되었습니다.

이제 cookie 조작에 유용한 툴인 'EditThisCookie'를 통해 현제 페이지의 쿠키들을 살펴보도록 하겠습니다.

cookie를 살펴보았지만 아쉽게도 REMOTE_ADDR 이라는 이름을 가지는 cookie는 없었습니다.

 

그렇다면 우리가 해줄 단 하나의 일은 바로 해당하는 쿠키를 추가해주는 것!

 

'+' 버튼을 눌러 쿠키를 추가해주었습니다.

이렇게 추가해준 다음에 페이지를 새로고침 해주었습니다.

REMOTE_ADDR cookie를 설정하고 난 후

이상하게도 1 밖에 출력이 되질 않으면서 여전히 Wrong IP!라는 문구가 보이고 있습니다.

 

우리는 하나의 조건을 놓친 것이죠.

이 구문을 통과하고 나서의 결과가 127.0.0.1이 되도록 해야 한다는 것을요.

 

php의 str_replace는 해당하는 문자열의 앞 쪽 부분을 뒤 쪽 부분으로 치환하게 됩니다.

한 번만 쓱 훑는 거죠.

 

그렇다면 우리는 값을 저 치환 구문을 통과하고도 127.0.0.1이라는 값이 나오도록 만들어야 합니다.

저는 112277...00...00...1 이렇게 만들었습니다.

걸려서 없어지는 부분들을 강조해보면...

  1. (.. 없애기) 112277...00...00...1 -> 112277..00..00..1
  2. (12 없애기) 112277.00.00.1 -> 1277..00..00..1
  3. (7. 없애기) 1277..00..00..1 -> 127.00..00..1
  4. (0. 없애기) 127.00..00..1 -> 127.0.0.1

 

그래서 해당 값을 넣어서 세팅하고

리로딩 해주면

라고 뜨면서 통과했다고 뜹니다. (저는 푼 뒤에 쓰는 글이라 그런 게 없네여...)


\$ 라는 구문들은 제가 코딩 관련해서 포스팅 할 때 수학 기호들 쓰려고 넣은 것 땜에 인식 안되도록 한 것이니 양해부탁드려요...ㅎㅎ

 

그리고 저는 보통 문제를 하나 풀고 나면 다른 분들의 풀이를 찾아보는 데

https://hackingboy.tistory.com/7

 

Webhacking - 문제24번

안녕하세요. 오늘은 Webhacking의 24번문제를 풀어보겠습니다. 홈페이지로 들어가 24번문제를 눌러주세요. 음 클라이언트 ip주소가 나오고 에이전트가 나오네요. 에이전트란 어떤 운영체제나 네트워크의 일부이며..

hackingboy.tistory.com

이 분의 풀이가 굉장히 신기했습니다.

보통은 다들 저처럼 확장 프로그램 등을 이용하여 cookie를 추가하거나 그러시는데

javascript:alert(document.cookie="REMOTE_ADDR=~~~");

이렇게 쓰시는 거 보고 정말 신기했습니다.

반응형