본문 바로가기

Play/wargame

(webhacking.kr) 24번 풀이. 그리고 의문/해결!

 

소스코드를 보니 extract() 이라는 함수가 사용되고 있더라.

처음 보는 함수라서 검색해보니, 인자로 전달하는 배열 속의 키값을 변수화시켜준다고 한다.

$arr[a] = 0
$arr[b] = 1

extract(arr)
# 이렇게 하면 a=0, b=1 변수화

 

처음 보는 함수인지라, 이거로 푸는것같아서 검색해봤다.

extract() 취약점

>> https://bbolmin.tistory.com/53

 

php extract()함수에 대하여 . .-

extract()함수는 배열 속의 키값을 변수화 시켜주는 함수이다. 예를 들어 $a[x] = 111; $a[y] = 222; 에서 extract(a) 할 경우 x = 111, y = 222가 되는 것이다. -> 그러면 소스에 extract($_GET)이 있다면??? GET메소드로

bbolmin.tistory.com

 

그리고 $SERVER와 $COOKIE

- $_SERVER 는 헤더, 경로 및 스크립트 위치와 같은 정보를 포함하는 배열 (출처)

- $_COOKIE는 HTTP COOKIE를 통해 현재 스크립트에 전달된 변수의 연관 배열 (출처

둘다 배열이다.

 

서버정보와 쿠키값이 변수가 되었다고 한다.

문제를 해결하기 위해서는 ip주소가 127.0.0.1이어야 하고, ip주소는 $REMOTE_ADDR.

$REMOTE_ADDR은 $_SERVER 배열의 인덱스로 존재한다. (현재 페이지를 보고 있는 사용자의 IP 주소)

 

 

1. 

개발자도구 열어서 쿠키에 REMOTE_ADDR 생성 후 아무거나 입력

> 문제 페이지 내 client ip 변경되는 것 확인.

 

2. 

필터링 피해서 요리조리 입력해보기.

12 필터링, 7. 필터링, 0. 필터링, ..는 .로 필터링

 

3.

본인 입력

REMOTE_ADDR: 112270....0120....0120....1

 

이유 모름

될때까지 아무거나 넣다가 패턴을 획득했다.

대체 왜인지?

 

-

2022-11-04

완전히 이해 해버린 것이다.

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

 

'Play > wargame' 카테고리의 다른 글

[LOS] Load of SQLInjection 16번 (ZOMBIE_ASSASSIN)  (0) 2022.11.11
(webhacking.kr) g00gle, g00gle2 풀이  (0) 2022.11.04
(webhacking.kr) 26번 풀이  (0) 2022.11.03
[dreamhack] lev1. mongo 풀이  (0) 2022.11.02
(webhacking.kr) 12번  (3) 2022.11.01