무슨 기능을 하는 페이지인지 모르겠어서 일단 이름을 넣어서 서버에 보내봤다.

 

입력한 이름을 ‘hello!’에 이름을 붙어서 출력하는 기능인 페이지로 확인됐다.

 

<?php
  if($_POST['id']){
    $id = $_POST['id'];
    $id = substr($id,0,5);
    system("echo 'hello! {$id}'"); // You just need to execute ls
  }
?>

코드가 주어져서 확인해보니, 입력한 값을 System 함수로 실행된 echo 'hello! {id}'의 결과를 페이지에 출력하고 있는 것으로 확인되었다.

하지만 제한된 글자는 5글자로 제한되어 있어서, 해당 조건에 맞춰서 명령어 인젝션을 해줘야 한다. 또한 주석으로 ls를 실행시켜서 결과값을 출력시켜야한다.

 

나는 비박스에서 사용했었던 세미클론(;)을 이용하여, 동시에 두개의 명령어를 실행시켜서 출력하려는 시도하였지만 echo 'hello! ';ls'가 되어서 ls 명령어가 작동하지 않았다.

 

혹시 ls''가 작동되는지 확실하지 않아서 한번 시도를 해보니, 작동이 되었다.

 

System 함수 안에서도 작동이 잘 되어 문제 페이지에 시도를 해봤다.

 

Flag 파일이 있는 것을 볼 수 있었다. 하지만 해당 파일의 이름이 flag값으로 보이지 않았다.

 

혹시나 하여 파일을 요청하니, 다행히 파일을 열람할 수 있었다.

 

flag 값이 기존에 봤던 값들과 다르고, 인터넷 주소 같아서 한번 들어가보니 일본 노래 유튜브가 나왔다….

 

댓글과 동영상을 올린 채널에 들어가봤지만, flag와 관련된 것을 발견할 수 없어서 일단 flag을 제출하니, 포인트를 획득할 수 있었다.

'워게임 > webhacking.kr' 카테고리의 다른 글

[Webhacking.kr] Old - 57 Write Up  (0) 2021.06.12
[Webhacking.kr] Old - 45 Write Up  (0) 2021.06.11
[Webhacking.kr] Old - 40 Write Up  (0) 2021.06.08
[Webhacking.kr] Old - 28 Write Up  (0) 2021.06.07
[Webhacking.kr] Old - 22 Write Up  (0) 2021.06.07
복사했습니다!