IT보안관의 공부 클라우드

[xcz.kr]prob18 본문

워게임/xcz.kr

[xcz.kr]prob18

ㅡㅡㅡㅡㄷ 2021. 2. 24. 18:44
<?
$key = "Congratulations!</br>Key is ??????????????????";
$liillillilliliili = @$_COOKIE['c'];
$liillillliiiliili = @$_GET['g'];
$lilllillliiiliili = @$_POST['p'];
   #쿠키와 GET, POST를 이용하여 문제를 해결해야한다.

if(empty($liillillilliliili) || empty($liillillliiiliili) || empty($lilllillliiiliili)){exit ('wrong T.T');}
$lililillliiiliili = $liillillliiiliili . $liillillilliliili;
   #lililillliiiliili = @$_GET['g'] + @$_COOKIE['c'] 대입
$lilililliiiiliill = $lilllillliiiliili;
   #lilililliiiiliill = @$_POST['p'] 대입

function test($a){
$b = '';
    for($i=0; $i < strlen($a); $i++){
        $b = $b . ' - ' . ord(substr($a,$i,1));
		   #문자들을 아스키값으로 변환하여 문자 사이에 '-'를 추가함.
    }
    return $b;
}
   #test(@$_GET['g'] + @$_COOKIE['c'])와 문자열 일치하는지 비교, @$_POST['p'] 와 문자열 일치하는지 비교
if(test($lililillliiiliili)==" - 103 - 105 - 118 - 101 - 109 - 101 - 112 - 97 - 115 - 115 - 119 - 111 - 114 - 100" || test($lilililliiiiliill) == " - 107 - 101 - 121 - 112 - 108 - 122 - 33"){
    echo $key;
}
else{
    echo 'wrong T.T';
}
?>

쿠키와 GET, POST에 빈 값이 있으면 안 되는 조건문이 존재하고

if(empty($liillillilliliili) || empty($liillillliiiliili) || empty($lilllillliiiliili)){exit ('wrong T.T');}
$lililillliiiliili = $liillillliiiliili . $liillillilliliili;
$lilililliiiiliill = $lilllillliiiliili;

아래 test 함수의 리턴 값과 비교하는 문자열을 아스키코드에서 텍스트 코드로 변환하면 문자열 "givemepassword", "keyplz!"가 나오는 걸 확인할 수 있다.

if(test($lililillliiiliili)==" - 103 - 105 - 118 - 101 - 109 - 101 - 112 - 97 - 115 - 115 - 119 - 111 - 114 - 100" || test($lilililliiiiliill) == " - 107 - 101 - 121 - 112 - 108 - 122 - 33"){
    echo $key;
}
else{
    echo 'wrong T.T';
}

이제 이걸 쿠키 값과 GET, POST 방식으로 전송하게 되면 키 값이 나오게 된다.

 

<form action="prob18.php?g=giveme" method="post"> 
  <input type="text" name="p"> 
  <input type="submit" value="전송"> 
</form>

개발자 도구를 이용하여 위 코드 추가,

 

javadocument.cookie="c=password";

개발자 도구 콘솔을 이용하여 쿠키값 추가

 

'워게임 > xcz.kr' 카테고리의 다른 글

[Xcz.kr] - prob21  (0) 2021.02.19
Comments