입력한 Text와 파일을 업로드할 수 있는 페이지가 나왔다.

 

나는 뭔가 있을 까봐 입력하여, 코드를 살펴보니 아무 것도 없었다.

 

파일와 text를 입력하여 코드를 살펴보니, 역시 아무것도 없었다.

하지만 내가 업로드한 PHP은 운영체제에 명령을 전달하는 코드였고, 나는 내가 업로드한 /upload/test.php에 명령어를 전달하였다.

그러나, 해당 코드는 실행이 안되고 읽기만 되는 것으로 다른 방법으로 접근을 해야한다.

 

GET /?mode=del&time=1622299124 HTTP/1.1
Host: webhacking.kr:10006
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://webhacking.kr:10006/
Accept-Encoding: gzip, deflate
Accept-Language: ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7
Cookie: PHPSESSID=31qq1t47nvtsrqr4bjchovl30v
Connection: close

그래서 마지막 기능인 delete 기능을 살펴보니, /?mode=del&time=1622299124이 서버에 전달 되는 것을 볼 수 있었다.

여기서 나는 한가지 가정을 세울 수 있었다.

내가 만약 코드를 구현하였으면, mode=del를 넣겨줬으면 rm명령어를 통해 삭제를 진행했을 것이다.

그럼 내가 업로드한 파일의 이름을 쓸 수 밖에 없을 텐데, 만약 파일의 이름이 파일명;ls이면 파일을 삭제 후 ls이 실행 될 것이다.

Filename 부분을 수정하여 test.php인 것을 test.php;ls으로 수정하고, 해당 부분을 삭제하였다.

 

그랬더니, ls이 실행이 되었고 flag를 획득할 수 있었다.

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

[Webhacking.kr] Old - 29 Write Up  (0) 2021.05.31
[Webhacking.kr] Old - 53 Write Up  (0) 2021.05.30
[Webhacking.kr] Old - 35 Write Up  (0) 2021.05.29
[Webhacking.kr] Old - 8 Write Up  (0) 2021.05.28
[Webhacking.kr] Old - 3 Write Up  (0) 2021.05.28
복사했습니다!