DVWAでInsecure CAPTCHA


前提

目標

  • ロボットチェックを回避する

手順概要

  • 挙動確認
  • ロボットチェック回避

内容

CAPTCHAとは

  • "Completely Automated Public Turing test to tell Computers and Humans Apart" の略であり、「人間とマシンを判別するチューリングテスト」のことである
  • ぐにゃぐにゃ文字の画像があり、その文字を入力させるやつ

前準備

  • DVWAにログインする
  • セキュリティレベルを下げる。
    • メニュー下にあるDVWA securityへアクセス
    • デフォルトがimpossibleなので、このままではハッキングできない。なのでlowに変更する
# ファイルへのアクセス許可する
root@kali:~# service apache2 start
# DB_createできるようにする
root@kali:~# service mysql start 

  • insecure CAPTCHAにアクセスする(左メニューにある)
    • 何やらエラーがでるので、設定が必要そう

事前設定

  • reCPATCHA API keyが無いらしいので取得する。
    • エラーメッセージの下にリンクがあるので、リンク押す。
    • googleへ飛ぶので、自身のアカウントでログイン
    • ラベル:適当に入力
    • reCAPTCHAタイプ: reCAPTCHA v2
    • ドメイン:CPATCHAを使用したいドメイン
    • 送信を押すと2つのkeyを取得できる
  • keyを取得したのでそれを設定ファイルに入れる。
    • 以下スクリプト参照
# configファイルにアクセス
root@kali:~# vi /var/www/html/DVWA-master/config/config.inc.php
# 以下の値が空であることを確認
$_DVWA[ 'recaptcha_public_key' ]  = '';
$_DVWA[ 'recaptcha_private_key' ] = '';
# 先ほど取得したkeyを入れる(上がクライアント、下がサーバー)
$_DVWA[ 'recaptcha_public_key' ]  = '6LcteN8UAAAAAJObgsbfsvEWLMYsgmKOESW-62';
$_DVWA[ 'recaptcha_private_key' ] = '6LcteN8UAAAAANCFjsdglgjmwxQZdysR9QatCw';

  • ロボットチェックが有効になったことを確認する。

CAPTCHAを攻略する

  • 挙動を確認する

    • 通常通り入力&チェック&送信
      • 変更許可メッセージが出る(下画像)
      • postでパラメータ渡している(下画像)
    • 変更許可ページで変更ボタン押す
      • 当然変更できる。(以下画像)
      • 同じようにpostされているのでパラメータを渡している(下画像)
  • 挙動からの考察

    • ページ遷移ではなくjsでページを書き換えているみたい。
    • パラメータstep=1ではロボットチェックを行う
    • パラメータstep=2ではパスワードの変更を行う。
    • step=2ではg-recaptcha-responseを使っていない。
  • ロボットチェックなしでパスワードを変更する

    • htmlを確認すると下記のようにinputタグ4つで対応していることが分かる。
      • ただ、通常step=1となっているので、これだと許可判定に飛ばされるので「2」に書き換える
      • 後はパスワードを入力し、ロボットチェックなしで送信する。
      • すると、パスワードが一発で変更できた。
        <form action="#" method="POST" >
            <h3>Change your password:</h3>
            <br />
             <-- valueを1から2へ変更する-->
            <input type="hidden" name="step" value="1" />
            New password:<br />
            <input type="password" AUTOCOMPLETE="off" name="password_new"><br />
            Confirm new password:<br />
            <input type="password" AUTOCOMPLETE="off" name="password_conf"><br />


        <script src='https://www.google.com/recaptcha/api.js'></script>
        <br /> <div class='g-recaptcha' data-theme='dark' data-sitekey='6Ld_eN8UAAAAAEOqO0Pw05X3bpSrbGmTexHlD2NS'></div>

            <br />

            <input type="submit" value="Change" name="Change">
        </form>

おわり