0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

DVWAでjavaScript

Posted at

前提

目標

  • token制御のformを突破する(今回の場合はsuccessを入力してもsubmitを成功させる)

手順概要

  • 挙動確認
  • phraseを変更し、submitを成功させる

内容

前準備

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

image.png

  • javaScriptにアクセスする(左メニューにある)
    image.png

javaScript

  • 挙動を確認する
    • 何も変更せず、submitする。
      • phraseが違うらしい。
    • 指示通り「success」を入力しsubmitする。
      • invalid tokenらしい。
    • htmlを確認1
      • tokenとphraseを送信している
    • htmlを確認2
      • tokenはここで生成しているっぽい

image.png

image.png

image.png

function rot13(inp) {
		return inp.replace(/[a-zA-Z]/g,function(c){return String.fromCharCode((c<="Z"?90:122)>=(c=c.charCodeAt(0)+13)?c:c-26);});
	}

	function generate_token() {
		var phrase = document.getElementById("phrase").value;
		document.getElementById("token").value = md5(rot13(phrase));
	}

	generate_token();
  • 挙動からの考察
    • phraseから生成したtokenとphraseが一致した場合、成功する
    • 初期設定ではchangeMeで成功するので、phraseを変更するとinvalid-tokenになっている可能性がある。
    • tokenはgenerate_token()で生成できる。
    • generete_token()はphraseにある値を読み取ってtokenを生成する。
  • phrase:successで成功させる
    • phraseに「success」を入力
    • conosoleでgenerate_token()を実行する
    • submit!で成功

image.png

image.png

  • 最後に
    • これが簡易的なログイン画面だとすると、どれだけ高度な暗号化技術をつかったとしても、フィルターを突破できることになる。
      おわり
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?