OTP를 어떻게 우회해야 하나요
<?php

function generateOTP() {
    return 'P' . str_pad(strval(random_int(0, 999999)), 6, "0", STR_PAD_LEFT);
}
$otp=generateOTP();

$input=empty("");

if($otp==$input){
echo "true\n";
}

else
{
echo "false\n";
}

echo $otp;
echo gettype($otp); //otp는 string임

?>

라고 했을때 true가 출력이 되는데 문제 내에서 opt 값을 empty("")로 넣으면 왜 OTP Fail이 뜨는 걸까요

스크린샷 2024-05-11 오후 12.16.48.png

여기 보면 "PHP" == "true" 가 성립해서 otp 값이 true를 반환하는 식만 넣으면 될 것 같은데 잘 안되네요..

empty("") -> x
isset($otp) -> x
if(1==1){return true;} -> x
(1==1)?true:false; -> x
if($id=="admin") -> x

#web
작성자 정보
답변 2
avatar
bincat
세계수

otp:"" 로 주셨을 경우에는, string과 string을 비교하게 되어서 형변환이 일어나지 않습니다!

2024.05.17. 18:26
고블빈
대표 업적 없음

index.php 외에 다른 파일도 잘 살펴보시기 바랍니다!

2024.05.27. 10:42
질문에 대한 답을 알고 계신가요?
지식을 나누고 포인트를 획득해보세요.
답변하고 포인트 받기