Bandit Level 23 → Level 24

Bandit

0 views

문제

image.png

풀이

1. 셸 스크립트 확인

image.png

1.1 분석

#!/bin/bash

myname=$(whoami)

cd /var/spool/$myname/foo
echo "Executing and deleting all scripts in /var/spool/$myname/foo:"
for i in * .*;
do
    if [ "$i" != "." -a "$i" != ".." ];
    then
        echo "Handling $i"
        owner="$(stat --format "%U" ./$i)"
        if [ "${owner}" = "bandit23" ]; then
            timeout -s 9 60 ./$i
        fi
        rm -f ./$i
    fi
done
  • 먼저 스크립트에서는 /var/spool/bandit24/foo 라는 디렉터리로 이동하고
    • 해당 디렉터리의 모든 파일을 처리한다.\
    • 파일 소유권이 bandit23인 경우에만 해당 파일을 실행한다.

2. 스크립트 작성

  • 해당 디렉터리에 나의 스크립트를 작성하면 bandit24 소유자로 실행되므로 /etc/bandit_pass/bandit24
    • 해당 디렉터리를 읽을 수 있다.
    • 따라서 셸 스크립트를 실행하고 나오는 결과를 /tmp에 저장해보자
cat /etc/bandit_pass/bandit24 > /tmp/bandit24_password
image.png

3. 결과 확인

cat /tmp/bandit24_password
image.png

gb8KRRCsshuZXI0tUuR6ypOFjiZbf3G8


Loading comments...