본문 바로가기

암호학..진로..등등

PHP extract 함수 및 str_replace 함수로 보는 문제 풀이

 

출처: webhacking.kr OLD-24 中

위 코드를 보도록 하자. 눈에 띄는 코드가 몇개 보인다. extract()와 str_place가 무엇인지 궁금하지 않은가? 오늘 바로 정리 해 보도록 하겠다.

 

1. extract function

extract function은 각 배열에 있는 값을 변수로 만들어주는 함수이다. 예를 들어서 살펴보도록 하자.

 

$prime[x] = 111;

$prime[y] = 3567;

extract(prime);

라는 코드에선 extract(prime)에 의해 x=111, y=3567이 되는것이다.

 

위 코드와 같이 적용해보면 사진속의 extract($server)와 extract($cookie)는 서버와 쿠키에 있는 값을 각각 불러오겠다는 뜻이된다. 

 

2. str_replace

이 또한 함수이다. 직역하면 문자열 대체함수이다. 정말 직역한 그대로의 기능을 가지고 있다. 어떻게 쓰이는지 살펴보자

str_replace(
     1번째 인수 : 변경대상 문자
     2번째 인수 : 변경하려는 문자
     3번째 인수 : 변수, replace가 바꾸고자 하는 문자열
)

이것을 이용해서 사진의 코드를 해석해보면 ..은 .으로 '12', '0.', '7.'은 공백(스페이스의 의미가 아니라 정말 아무것도 적히지 않은 상태)로 대체된다. 이렇게 적힌 값이 $ip에 저장된다. 이때 ip의 값이 127.0.0.1일 경우 문제가 풀리게 된다.

 

이때, $ip의 값은 $REMOTE_ADDR에 저장 된다.

$ip의 값을 바꾸기 위해선 $REMOTE_ADDR라는 쿠키를 생성하고 쿠키의 값을 바꿔주어야 한다.

 

str_replace코드를 주의하며 변환을 하면

'112277...00...00...1'와 같이 작성해야 한다.

빨간색으로 작성한 부분은 공백처리, 노란색으로 작성한 부분은 '.'으로 변환되는 부분이다.

 

글은 여기서 마치도록 하겠다. 끝!

'암호학..진로..등등' 카테고리의 다른 글

Pytorch 설치하기(with. anaconda)  (0) 2023.07.03
RSA 공개키 암호화  (2) 2022.09.22
해시와 레인보우 테이블  (0) 2022.08.28
절대경로와 상대경로  (0) 2022.08.20
PHP 정규식  (0) 2022.03.27