문제

  1. Command Injection Advanced

    Command Injection Advanced

    Untitled

    http가 앞에 포함된 url을 인자로 backend에 전송할 경우, curl을 이용하여 받아온 html파일을 렌더링해서 보여주는 웹 사이트이다. url injection과 메타 문자를 방지하기 위한 md5해싱과 escapeshellcommand함수가 존재한다. 하지만 , 옵션의 경우에 대한 처리(-o , -d 등의 옵션)는 되어 있지 않다.

    공부를 하며 알게된 PHP의 root directory(기본적으로 아파치의 웹 문서 파일의 경로는 “/var/www/html”)에 -o 옵션을 통해서 원하는 directory에 url을 저장해보자.

    github로 webshell code를 hosting하여도 되지만 learn.dreamhack.io에서 호스팅 되고 있는 page를 제공하여

    input form에

    phpurl -o /var/www/html/cache/myhack.php 경로에 해당 php 스크립트를 저장하였다.

    이후 해당 endpoint로 접속하면 webshell을 구동하여 flag를 탈취하였다.

  2. command-injection-chatgpt

    command-injection-chatgpt

    Untitled

    따로 메타문자에 대한 처리가 되어있지않아 ‘;’ 메타문자를 사용하여 cat flag.py를 통해 플래그를 탈취하였다.