it 공부 일기 - 워게임 ctf 풀이 및 언어 강좌모음

probgame Extract Function 문제 풀이 본문

probgame.com

probgame Extract Function 문제 풀이

kimtong 2021. 1. 13. 14:15

http://probgame.com

 

Probgame

히공 사원의 패스워드 150

probgame.com

워게임사이트의 Extract Function 문제를 한번 분석해보면

 

이렇게 php 소스코드와 Hello zzzzz 가 출력되어있는것을 볼 수 있다.

해당 문제의 의도를 파악하자면 아까 Extract 함수라고 언급이 되어있었는데

php 의 Extract 라는 함수는 만약 변수명이 노출되고 클라이언트가 임의적으로 값을 변경시켜 적용시킬 수 있는 환경이라면 충분히 취약한 환경이 될 수도있다.

 

현재 문제의 경우 php 소스코드의 변수명을 노출시켰고 

$_GET 배열로 extract 함수를 실행한것을 볼 수 있다.

 

$_GET 에 임의의 값을 전달하기 위해서는

?GET=GET 이런식으로 이름과 값을 전달하면 된다.

 

먼저 플래그를 얻기 위해서는

이 if를 만족해야되는데

일반적으로 ?CheckOne=0x2dbfadef나 ?CheckOne=2dbfadef를시도한다면 (int) 의 형변환에 의하여

우리가원하는대로풀이가되지않는다.

 

왜냐하면 php 의 경우

$a = "111";

echo (int)$a; 를 하면 인트형으로 변환되어 정상적으로 111이 출력도지만 만약 문자열이 있을시에 거기까지 짤라서 반환을 하게 된다.

예시를 들자면

이렇게 나오게 된다는것이다.

 

0xdbf 는 16진수이지만 (int)는 전체적이 아닌 한글자씩 판단하여 

문자로 인식하고 그 뒤의 모든 글들이 짤리게 되버린다.

 

그러므로 올바르게 풀이를 하기 위해서는

$CheckTwo 의 변수에 있는 0x2dbfadef 16진수를 10진수로 바꿔 ?CheckOne=767536623 이런식으로 넣어주면

 

이렇게 플래그가 출력된것을 볼 수 있다.

 

'probgame.com' 카테고리의 다른 글

probgame openfile 문제 풀이  (0) 2021.01.13
probgame Url parsing  (0) 2021.01.13
probgame Simple Sqli 문제 풀이  (0) 2021.01.13