Hello there, ('ω')ノ
OTPバイパスを。
脆弱性:
OTPバイパス
記事:
https://shahjerry33.medium.com/otp-bypass-developers-check-5786885d55c6
概要 :
OTPは、1回のログイン試行に使用するために自動的に生成される。
文字または数字の文字列で。
OTP、完全なワンタイムパスワードは、SMSまたはプッシュメッセージングを介して。
ユーザの電話に送信でき、Webベースのサービス、プライベート資格情報、および。
データを保護するために使用されて。
今回、OTPのいくつかのバイパスをチェックしていると。
アプリケーションのコードといくつかのボタンを確認しているときに見つけたので。
これをDeveloper’s Checkと呼ぶことに。
ここでの間違いは、アプリケーションがクライアント側でOTPチェックしていて。
簡単に識別できるので、誰でも簡単にOTPをバイパスできて。
この脆弱性を見つける方法は下記のとおりで。
1.ターゲットのWebサイトに移動して。
2.ここで登録するオプションがあり。
ログイン用のOTPが送信されるとOTPを受信して。
3.[Continue]ボタンを右クリックし、要素の検査をクリックして。
OTPチェックを検証するいくつかの機能をチェックして。
4.以下のスクリーンショットで、それらが「checkOTP(event)」と呼ばれる。
関数であることがわかって。
5.矢印をクリックして、ブラウザのコンソールにイベントを入力するだけで。
6.矢印をクリックすると、デバッガでファイルが開き。
モバイルに送信されたOTPが表示されて。
論理コード:
<script type=’text/javascript’>
function checkOTP(e)
{
if (document.getElementById(“txtOtp”).value == 8951)
{
var formSignUp = document.getElementById(“formSignUp”);
formSignUp.submit();
}
else
{
var divWrongOTP = document.getElementById(‘divWrongOTP’);
divWrongOTP.style.display = ‘inline’;
e.preventDefault();
return;
}
}
function resubmitOtp()
{
location.reload();
}
</script>
ここで、「(document.getElementById(“txtOtp”).value == 8951)」かどうかを。
確認できて。
これは、入力したOTPが「8951」と一致する場合、ログインが成功するわけで。
Best regards, (^^ゞ