WordPressのウェブサイトのセキュリティをテストしようとしていましたが、今は困惑しています。あるフォームでは、入力に<script>alert('XSS Expoit worked');</script>
と入力しました。フォームを送信した後、次のページにポップアップボックスが表示されました。これは私のフォームがまだ保護されていないことを意味します。しかし、それは問題ではありません。WordpressでのXSSスクリプトの削除
最初に、そのXSSスクリプトの提出はupdate_user_meta()
でユーザーの更新であり、データベースのusermeta
テーブルで利用できるはずです。
if(isset($_POST['submit_userinfo'])) {
global $current_user;
get_currentuserinfo();
$user_id = $current_user->ID;
if(!wp_verify_nonce($_POST['peoplesweep_user_form'],'peoplesweep_form_submit')){
wp_die('Our Site is protected!!');
}
else{
$nric = $_POST['nric'];
update_user_meta($user_id, 'nric', $nric);
wp_redirect(get_permalink('next_page')); // next page after submission success
}
}
ここでの問題は、私はテーブル&に私はnext_page
にスキップし、その後&ログインをログアウトするたびにスクリプトを見つけられませんでした、で、スクリプトがまだ飛び出します。 を削除できるように、保存場所を知る必要があります。
スクリプトはどこに保存されますか?そして/または、どのようにデータベースの変更を見直すつもりですか?
特別な文字がエンコードされているか、キャッシングプラグインを使用しているため、「XSS Expoit worked」のためだけにdbを検索しましたか? – TarranJones
@TarranJonesええ私はその文字列を検索しましたが、その前に 'nric'値を含む行を最初に検索しました。' XSS Expoit worked'はその名前の入力フィールドから提出された行でなければなりません「nric」の...しかし、その行は、複数回送信しても存在しませんでした!プラグインをキャッチしていますか?私はそれについてはわかりませんが、NinjaFirewallプラグインを使用して、ゲストや登録ユーザーが悪意のある行為をするのを防ぐのに役立ちます...しかし、私が今やっているような、 – Kaydarin
_ "これは私のフォームがまだ保護されていないことを意味します" _ - いいえ;出力時にデータが正しく処理されなかったことを意味します。/phpMyAdminを使うと、すべてのテーブルとすべてのカラムを簡単に検索できます。 – CBroe