인공지능 개발일지

[Wehacking.kr] old 24번 Writeup 본문

보안/해킹 워게임

[Wehacking.kr] old 24번 Writeup

Prcnsi 2021. 5. 24. 23:44
728x90

old24

위는 24번의 초기화면이다.그런데 테이블을 보니 전에 풀었던 42번이 생각난다.

그런데 이 문제는 친절하게 소스코드를 바로 보여준다.

전체 코드

이 중에서 위에서 부터 보겠다.

코드 시작

여기는 초기화면에서 view_source 를 띄우는 코드로 보인다.

조건문

그리고 위 코드에서 ip변수가 127.0.0.1 이 되면 문제가 풀린다고 나와있다. 그런데 초기화면에서 바로 Wrong IP가 뜨는 것을 보니 현재는 조건을 충족시키 지 않나보다.

 

다음으로 ip변수가 정의된 코드쪽에 봤다.

코드 핵심

extract()은 값을 변수화시켜주는 함수인데 이를 이용하여 $_SERVER 와 $_COOKIE의 값을 변수로 바꿔주었다.

그리고 $REMOTE_ADDR 변수가 나오는데 이는 PHP의 환경변수로 클라이언트의 IP주소를 가져오는 환경변수이다.

그래서 위의 ip변수는 실제로 ip의 값을 저장하 고 있는 변수이다.

 

그런데 if문의 str_replace함수에서 ip값이 127.0.0이 되지 못 하 도록 필터링 하고 있다.

따라서 필터링이 되도 127.0.0.1이 되도록 변조할 것이다.

여기서 이해해야할 것은 코드에서 str_replace함수는 위에서 아래로 명령을 수행 하면서

12를 한 번만 필터링한다는 점이다.

그래서

112277...00...00...1

위을 입력하면 한 번씩 걸려진 결과가 127.0.0.1이 된다.

 

그럼 이제 위의 변조한 값을 쿠키로 변경하기 위해 쿠기 값을 변조하는 확장 프로그램을 깔았다.

쿠키 변조

그런데 아무생각 없이 아래와 같이 쿠키 값을 변경하였더니 어떠한 변화도 일어나지 않았다.

1차 시도 실패

 

알고보니 REMOTE_ADDR이라는 쿠키를 추가해서 변경해야 했다.

그런데도 REMOTE_ADDR이라는 쿠키가 추가되지 않았다.

 

그래서 다른 쿠키 편집 확장 프로그램을 설치해서 위의 변조 값을 REMOTE_ADDR로 추가해주니까 풀렸다.

결과

 

728x90

'보안 > 해킹 워게임' 카테고리의 다른 글

[Wehacking.kr] old 42번 Writeup  (0) 2021.05.31
[Wehacking.kr]old 27번 Writeup  (0) 2021.05.25
[Wehacking.kr] old 23번 Writeup  (0) 2021.05.23
[Wehacking.kr] old 18번 Writeup  (0) 2021.05.22
[Xss-game]Level 1~6번 Writeup  (0) 2021.05.21