XSS Challenges解題構想とテクニック記録

23811 ワード

Stage #1
アドレス:http://xss-quiz.int21h.jp/
XSS Challenges 解题思路及技巧记录_第1张图片
まず「123」と入力してテストします.

F 12キーでWebソースを表示します.
XSS Challenges 解题思路及技巧记录_第2张图片
注入点がラベルであることを発見し,payload閉鎖ラベルを構築すればよい.
payload:
"alert(document.domain);

注入に成功しました:
XSS Challenges 解题思路及技巧记录_第3张图片
 
#######################################################################
Stage #2
アドレス:Stage#2
XSS Challenges 解题思路及技巧记录_第4张图片
まず「123」と入力してテストします.

F 12キーでWebソースを表示します.
XSS Challenges 解题思路及技巧记录_第5张图片
注入点がラベルであることを発見し,payloadを構築してラベルとvalue属性を早期に閉じるとよい.
payload:
">alert(document.domain);

注入に成功しました:
XSS Challenges 解题思路及技巧记录_第6张图片
#######################################################################
Stage #3
アドレス:Stage#3
XSS Challenges 解题思路及技巧记录_第7张图片
まず「123」を入力してテストし、F 12キーでWebソースを表示します.
XSS Challenges 解题思路及技巧记录_第8张图片
注入点がラベルであることを発見し、構造payloadを構築してラベルを閉じる:

ポップアップされていないことがわかりました.ソースコードを確認すると<>エスケープされました.

他の注入点を探してburpsuiteを使用してパッケージをキャプチャし、country(Japan)値を変更します.
XSS Challenges 解题思路及技巧记录_第9张图片
修正後(特殊文字はurlで符号化しても符号化しなくてもよい):
XSS Challenges 解题思路及技巧记录_第10张图片
payload:
"alert(document.domain);

注入に成功しました:
XSS Challenges 解题思路及技巧记录_第11张图片
#######################################################################
Stage #4
アドレス:Stage#4
XSS Challenges 解题思路及技巧记录_第12张图片
まず「123」と入力して初期プローブを行います.
XSS Challenges 解题思路及技巧记录_第13张图片
前の関門と似ていることがわかりました.burpsuiteを使用してパッケージをキャプチャします.
XSS Challenges 解题思路及技巧记录_第14张图片
大きいhackmeは明らかに注入点で、実はp 1、p 2パラメータの値は転義を経て、注入しにくくて、実はホームページのソースコードをよく見てフォームが隠れているパラメータがあることを発見することができて、このhackmeです:
XSS Challenges 解题思路及技巧记录_第15张图片
burpsuiteを使用してp 3パラメータ値を変更します.
XSS Challenges 解题思路及技巧记录_第16张图片
payload:
">alert(document.domain);

注入に成功しました:
XSS Challenges 解题思路及技巧记录_第17张图片
#######################################################################
Stage #5
アドレス:Stage#5
XSS Challenges 解题思路及技巧记录_第18张图片
まず「123」と入力して初期プローブを行います.
XSS Challenges 解题思路及技巧记录_第19张图片
注入点はvalueのままであり、入力ボックス構造payloadは長さが制限されていることを発見し、maxlength="15"であるため、ソースコードの長さ制限を修正する.

payload:
">alert(document.domain);

注入に成功しました:

#######################################################################
Stage #6
アドレス:Stage#6
XSS Challenges 解题思路及技巧记录_第20张图片
まず「123」と入力して初期プローブを行い、注入点がvalueにあることを発見した.
XSS Challenges 解题思路及技巧记录_第21张图片
「>alert(document.domain);」と入力すると、<>がエスケープされます.
XSS Challenges 解题思路及技巧记录_第22张图片
jsイベントを使用して<>,payloadの使用を回避できます.
"onclick=alert(document.domain) 1="

または、
"onmouseover=alert(document.domain) 1="

閉じると、ソースコードが構成されます.
XSS Challenges 解题思路及技巧记录_第23张图片
クリック(onclick)またはマウス移動(onmouseover)により、注入に成功しました.
XSS Challenges 解题思路及技巧记录_第24张图片
#######################################################################
Stage #7
アドレス:Stage#7
XSS Challenges 解题思路及技巧记录_第25张图片
「123」と入力して初期プローブを行い、注入点がvalueに残っていることを発見しました.
XSS Challenges 解题思路及技巧记录_第26张图片
burpsuiteのレスポンスパッケージを観察すると、value値の後に引用符はありません(本題のスペースが区切り文字として使用できる必要条件だと思います)が、ブラウザに引用符が表示されるのは、ブラウザが自動的に補充する理由かもしれません.
burp:  
firfox:  
payloadを構築して注入すると「」が変換されることが分かった.

スペース分割プロパティを使用してpayloadを構築するには、次の手順に従います.
1 onclick=alert(document.domain)

または、
1 onmouseover=alert(document.domain)

閉じると、ソースコードが構成されます.
XSS Challenges 解题思路及技巧记录_第27张图片
クリック(onclick)またはマウス移動(onmouseover)により、注入に成功しました.

#######################################################################
Stage #8
アドレス:Stage#8
XSS Challenges 解题思路及技巧记录_第28张图片
「123」を入力して初期プローブを行い、urlが123のリンクを生成します.
XSS Challenges 解题思路及技巧记录_第29张图片
Javascript擬似プロトコルを使用してpayloadを構築するには、次の手順に従います.

payload:
javascript: alert(document.domain)

生成されたリンクjavascript:alert(document.domain)をクリックし、注入に成功します.
XSS Challenges 解题思路及技巧记录_第30张图片
#######################################################################
Stage #9
アドレス:Stage#9
IEブラウザを使用して、しばらくスキップする必要があります
#######################################################################
Stage #10
アドレス:Stage#10
XSS Challenges 解题思路及技巧记录_第31张图片
「123」と入力して初期プローブを行い、注入点がvalueに残っていることを発見しました.
XSS Challenges 解题思路及技巧记录_第32张图片
通常のpayload注入を構築すると、キーワードdomainがフィルタされます.
XSS Challenges 解题思路及技巧记录_第33张图片
payloadを再構築するには:
">alert(document.dodomainmain);

閉じたWebソースをフィルタ:

成功弾窓、注入成功:

#######################################################################
Stage #11
アドレス:Stage#11
XSS Challenges 解题思路及技巧记录_第34张图片
「123」と入力して初期プローブを行い、注入点がvalueに残っていることを発見しました.
XSS Challenges 解题思路及技巧记录_第35张图片
通常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
XSS Challenges 解题思路及技巧记录_第36张图片
Webソースを表示すると、Domベースのxss脆弱性が検出されます(ローカルjs文でブラウザにコンテンツを出力します):
XSS Challenges 解题思路及技巧记录_第37张图片
payloadを構築し、 alert(document.domain)は、窓が開いていないことを発見し、この時のページのソースコードを引き続き見てみると、<>はhtmlにエスケープされていることが分かった.ここでjs符号を解析し、html符号を解析するため、js符号を用いて迂回しようとした.
XSS Challenges 解题思路及技巧记录_第38张图片
xss符号化の問題は私のもう一つの博文を見てください、リンク:XSS符号化はブラウザの解析順序を迂回して、payloadを構築してjs符号化を使って迂回します   \x3cscript\x3ealert(document.domain)\x3c/script\x3e, 検出フィルタ:

payloadを再構築するには:
\\x3cscript\\x3ealert(document.domain)\\x3c/script\\x3e

注入に成功しました:
XSS Challenges 解题思路及技巧记录_第39张图片
#######################################################################
Stage #16
アドレス:Stage#16
XSS Challenges 解题思路及技巧记录_第40张图片
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

注入成功:XSS Challenges 解题思路及技巧记录_第41张图片
#######################################################################
Stage #17 #18
アドレス:Stage#17  Stage#18
すべてIEブラウザーを使う必要があって、抜け穴は時効性を失って、しばらくスキップします  =.=
の最後の部分