XSS Challenges解題構想とテクニック記録
23811 ワード
Stage #1
アドレス:http://xss-quiz.int21h.jp/
まず「123」と入力してテストします.
F 12キーでWebソースを表示します.
注入点がラベルであることを発見し,payload閉鎖ラベルを構築すればよい.
payload:
注入に成功しました:
#######################################################################
Stage #2
アドレス:Stage#2
まず「123」と入力してテストします.
F 12キーでWebソースを表示します.
注入点がラベルであることを発見し,payloadを構築してラベルとvalue属性を早期に閉じるとよい.
payload:
注入に成功しました:
#######################################################################
Stage #3
アドレス:Stage#3
まず「123」を入力してテストし、F 12キーでWebソースを表示します.
注入点がラベルであることを発見し、構造payloadを構築してラベルを閉じる:
ポップアップされていないことがわかりました.ソースコードを確認すると<>エスケープされました.
他の注入点を探してburpsuiteを使用してパッケージをキャプチャし、country(Japan)値を変更します.
修正後(特殊文字はurlで符号化しても符号化しなくてもよい):
payload:
注入に成功しました:
#######################################################################
Stage #4
アドレス:Stage#4
まず「123」と入力して初期プローブを行います.
前の関門と似ていることがわかりました.burpsuiteを使用してパッケージをキャプチャします.
大きいhackmeは明らかに注入点で、実はp 1、p 2パラメータの値は転義を経て、注入しにくくて、実はホームページのソースコードをよく見てフォームが隠れているパラメータがあることを発見することができて、このhackmeです:
burpsuiteを使用してp 3パラメータ値を変更します.
payload:
注入に成功しました:
#######################################################################
Stage #5
アドレス:Stage#5
まず「123」と入力して初期プローブを行います.
注入点はvalueのままであり、入力ボックス構造payloadは長さが制限されていることを発見し、maxlength="15"であるため、ソースコードの長さ制限を修正する.
payload:
注入に成功しました:
#######################################################################
Stage #6
アドレス:Stage#6
まず「123」と入力して初期プローブを行い、注入点がvalueにあることを発見した.
「>alert(document.domain);」と入力すると、<>がエスケープされます.
jsイベントを使用して<>,payloadの使用を回避できます.
または、
閉じると、ソースコードが構成されます.
クリック(onclick)またはマウス移動(onmouseover)により、注入に成功しました.
#######################################################################
Stage #7
アドレス:Stage#7
「123」と入力して初期プローブを行い、注入点がvalueに残っていることを発見しました.
burpsuiteのレスポンスパッケージを観察すると、value値の後に引用符はありません(本題のスペースが区切り文字として使用できる必要条件だと思います)が、ブラウザに引用符が表示されるのは、ブラウザが自動的に補充する理由かもしれません.
burp:
firfox:
payloadを構築して注入すると「」が変換されることが分かった.
スペース分割プロパティを使用してpayloadを構築するには、次の手順に従います.
または、
閉じると、ソースコードが構成されます.
クリック(onclick)またはマウス移動(onmouseover)により、注入に成功しました.
#######################################################################
Stage #8
アドレス:Stage#8
「123」を入力して初期プローブを行い、urlが123のリンクを生成します.
Javascript擬似プロトコルを使用してpayloadを構築するには、次の手順に従います.
payload:
生成されたリンクjavascript:alert(document.domain)をクリックし、注入に成功します.
#######################################################################
Stage #9
アドレス:Stage#9
IEブラウザを使用して、しばらくスキップする必要があります
#######################################################################
Stage #10
アドレス:Stage#10
「123」と入力して初期プローブを行い、注入点がvalueに残っていることを発見しました.
通常のpayload注入を構築すると、キーワードdomainがフィルタされます.
payloadを再構築するには:
閉じたWebソースをフィルタ:
成功弾窓、注入成功:
#######################################################################
Stage #11
アドレス:Stage#11
「123」と入力して初期プローブを行い、注入点がvalueに残っていることを発見しました.
通常payload注入を構築すると、キーワードscriptがxxxされることがわかります.
jsイベントを構築すると、onclickとonmouseoverは同じxxxであることがわかります.
Javascript擬似プロトコルjavascript:alert(document.domain)を使用すると、同じxxx:
scriptを検出する正規表現を迂回して、rをhtml符号化payloadなどのscriptの任意の文字をhtml符号化して試みる.
リンクをクリックして、入力に成功しました:
#######################################################################
Stage #12
アドレス:Stage#12
IEブラウザを使用する必要があります、脆弱性は時効性を失って、しばらくスキップします =.=
#######################################################################
Stage #13
アドレス:Stage#13
IEブラウザを使用する必要があります、脆弱性は時効性を失って、しばらくスキップします =.=
#######################################################################
Stage #14
アドレス:Stage#14
IEブラウザを使用する必要があります、脆弱性は時効性を失って、しばらくスキップします =.=
#######################################################################
Stage #15
アドレス:Stage#15
Webソースを表示すると、Domベースのxss脆弱性が検出されます(ローカルjs文でブラウザにコンテンツを出力します):
payloadを構築し、 alert(document.domain)は、窓が開いていないことを発見し、この時のページのソースコードを引き続き見てみると、<>はhtmlにエスケープされていることが分かった.ここでjs符号を解析し、html符号を解析するため、js符号を用いて迂回しようとした.
xss符号化の問題は私のもう一つの博文を見てください、リンク:XSS符号化はブラウザの解析順序を迂回して、payloadを構築してjs符号化を使って迂回します \x3cscript\x3ealert(document.domain)\x3c/script\x3e, 検出フィルタ:
payloadを再構築するには:
注入に成功しました:
#######################################################################
Stage #16
アドレス:Stage#16
stage#15と同様にpayloadを構築してテストする \x3cscript\x3ealert(document.domain)\x3c/script\x3e ,検出フィルタ:
payloadを再構築する: \\x3cscript\\x3ealert(document.domain)\\x3c/script\\x3e 試してみると\フィルタされていない、ポップアップされていない:
unicode符号化を使用して迂回を試み、payload:
注入成功:
#######################################################################
Stage #17 #18
アドレス:Stage#17 Stage#18
すべてIEブラウザーを使う必要があって、抜け穴は時効性を失って、しばらくスキップします =.=
の最後の部分
アドレス:http://xss-quiz.int21h.jp/
まず「123」と入力してテストします.
F 12キーでWebソースを表示します.
注入点がラベルであることを発見し,payload閉鎖ラベルを構築すればよい.
payload:
"alert(document.domain);
注入に成功しました:
#######################################################################
Stage #2
アドレス:Stage#2
まず「123」と入力してテストします.
F 12キーでWebソースを表示します.
注入点がラベルであることを発見し,payloadを構築してラベルとvalue属性を早期に閉じるとよい.
payload:
">alert(document.domain);
注入に成功しました:
#######################################################################
Stage #3
アドレス:Stage#3
まず「123」を入力してテストし、F 12キーでWebソースを表示します.
注入点がラベルであることを発見し、構造payloadを構築してラベルを閉じる:
ポップアップされていないことがわかりました.ソースコードを確認すると<>エスケープされました.
他の注入点を探してburpsuiteを使用してパッケージをキャプチャし、country(Japan)値を変更します.
修正後(特殊文字はurlで符号化しても符号化しなくてもよい):
payload:
"alert(document.domain);
注入に成功しました:
#######################################################################
Stage #4
アドレス:Stage#4
まず「123」と入力して初期プローブを行います.
前の関門と似ていることがわかりました.burpsuiteを使用してパッケージをキャプチャします.
大きいhackmeは明らかに注入点で、実はp 1、p 2パラメータの値は転義を経て、注入しにくくて、実はホームページのソースコードをよく見てフォームが隠れているパラメータがあることを発見することができて、このhackmeです:
burpsuiteを使用してp 3パラメータ値を変更します.
payload:
">alert(document.domain);
注入に成功しました:
#######################################################################
Stage #5
アドレス:Stage#5
まず「123」と入力して初期プローブを行います.
注入点はvalueのままであり、入力ボックス構造payloadは長さが制限されていることを発見し、maxlength="15"であるため、ソースコードの長さ制限を修正する.
payload:
">alert(document.domain);
注入に成功しました:
#######################################################################
Stage #6
アドレス:Stage#6
まず「123」と入力して初期プローブを行い、注入点がvalueにあることを発見した.
「>alert(document.domain);」と入力すると、<>がエスケープされます.
jsイベントを使用して<>,payloadの使用を回避できます.
"onclick=alert(document.domain) 1="
または、
"onmouseover=alert(document.domain) 1="
閉じると、ソースコードが構成されます.
クリック(onclick)またはマウス移動(onmouseover)により、注入に成功しました.
#######################################################################
Stage #7
アドレス:Stage#7
「123」と入力して初期プローブを行い、注入点がvalueに残っていることを発見しました.
burpsuiteのレスポンスパッケージを観察すると、value値の後に引用符はありません(本題のスペースが区切り文字として使用できる必要条件だと思います)が、ブラウザに引用符が表示されるのは、ブラウザが自動的に補充する理由かもしれません.
burp:
firfox:
payloadを構築して注入すると「」が変換されることが分かった.
スペース分割プロパティを使用してpayloadを構築するには、次の手順に従います.
1 onclick=alert(document.domain)
または、
1 onmouseover=alert(document.domain)
閉じると、ソースコードが構成されます.
クリック(onclick)またはマウス移動(onmouseover)により、注入に成功しました.
#######################################################################
Stage #8
アドレス:Stage#8
「123」を入力して初期プローブを行い、urlが123のリンクを生成します.
Javascript擬似プロトコルを使用してpayloadを構築するには、次の手順に従います.
payload:
javascript: alert(document.domain)
生成されたリンクjavascript:alert(document.domain)をクリックし、注入に成功します.
#######################################################################
Stage #9
アドレス:Stage#9
IEブラウザを使用して、しばらくスキップする必要があります
#######################################################################
Stage #10
アドレス:Stage#10
「123」と入力して初期プローブを行い、注入点がvalueに残っていることを発見しました.
通常のpayload注入を構築すると、キーワードdomainがフィルタされます.
payloadを再構築するには:
">alert(document.dodomainmain);
閉じたWebソースをフィルタ:
成功弾窓、注入成功:
#######################################################################
Stage #11
アドレス:Stage#11
「123」と入力して初期プローブを行い、注入点がvalueに残っていることを発見しました.
通常payload注入を構築すると、キーワードscriptがxxxされることがわかります.
jsイベントを構築すると、onclickとonmouseoverは同じxxxであることがわかります.
Javascript擬似プロトコルjavascript:alert(document.domain)を使用すると、同じxxx:
scriptを検出する正規表現を迂回して、rをhtml符号化payloadなどのscriptの任意の文字をhtml符号化して試みる.
">hackme
リンクをクリックして、入力に成功しました:
#######################################################################
Stage #12
アドレス:Stage#12
IEブラウザを使用する必要があります、脆弱性は時効性を失って、しばらくスキップします =.=
#######################################################################
Stage #13
アドレス:Stage#13
IEブラウザを使用する必要があります、脆弱性は時効性を失って、しばらくスキップします =.=
#######################################################################
Stage #14
アドレス:Stage#14
IEブラウザを使用する必要があります、脆弱性は時効性を失って、しばらくスキップします =.=
#######################################################################
Stage #15
アドレス:Stage#15
Webソースを表示すると、Domベースのxss脆弱性が検出されます(ローカルjs文でブラウザにコンテンツを出力します):
payloadを構築し、 alert(document.domain)は、窓が開いていないことを発見し、この時のページのソースコードを引き続き見てみると、<>はhtmlにエスケープされていることが分かった.ここでjs符号を解析し、html符号を解析するため、js符号を用いて迂回しようとした.
xss符号化の問題は私のもう一つの博文を見てください、リンク:XSS符号化はブラウザの解析順序を迂回して、payloadを構築してjs符号化を使って迂回します \x3cscript\x3ealert(document.domain)\x3c/script\x3e, 検出フィルタ:
payloadを再構築するには:
\\x3cscript\\x3ealert(document.domain)\\x3c/script\\x3e
注入に成功しました:
#######################################################################
Stage #16
アドレス:Stage#16
stage#15と同様にpayloadを構築してテストする \x3cscript\x3ealert(document.domain)\x3c/script\x3e ,検出フィルタ:
payloadを再構築する: \\x3cscript\\x3ealert(document.domain)\\x3c/script\\x3e 試してみると\フィルタされていない、ポップアップされていない:
unicode符号化を使用して迂回を試み、payload:
\\u003cscript\\u003ealert(document.domain)\\u003c/script\\u003e
注入成功:
#######################################################################
Stage #17 #18
アドレス:Stage#17 Stage#18
すべてIEブラウザーを使う必要があって、抜け穴は時効性を失って、しばらくスキップします =.=
の最後の部分