banner
毅种循环

毅种循环

头顶铁锅接收宇宙能量

shiro-waf-bypass

この shiro は WAF を持っていますが、具体的な状況はキーを見つけることができますが、リンクを見つけることができません。

image.png

キーが存在するが、リンクが見つからない場合、パケットキャプチャを確認してください。

私が知っている shiro のバイパス方法は、rememberMe クッキーの長さと汚れデータの埋め込みです。WAF は rememberMe クッキーを復号化し、復号化後に悪意のある動作が存在するかどうかを確認します。バイパスの戦略は、クッキーの復号化を防ぐことです。shiro の暗号化および復号化方法は、base64+aes を使用しているため、特定の特殊文字をペイロードに追加するだけで WAF を回避できます。使用できる文字は!、@、#(BASE エンコーディングで使用される可能性のある文字が現れない限り、どの文字でも構いません)。

WAF ルールを最初に探知する#

image.png

これは、リンクを探知する際に送信されるリクエストパケットです。リクエストパケットは GET リクエストです。

ステータスにはフィードバックがありません。

クッキーの長さを判定する#

image.png

rememberMe が存在し、rememberMe=deleteMe も存在します。

それならば、WAF は確かにクッキーの長さをブロックしています。

ペイロードの長さを縮小できるものがありますが、私は知りません。プロジェクトを参考にしてください:https://xz.aliyun.com/t/10824

ダーティ文字を埋め込む#

image.png

ダーティ文字を埋め込んでもフィードバックはありません。

未知の HTTP メソッド名で WAF を回避する#

GET リクエストメソッドを変更してテストします。

最後にリクエストを XXX に変更すると、成功するようになります。
image.png

image.png

注:#

最初は未知のリクエストはできませんでしたが、WAF によってブロックされました。最初に認識した WAF の特徴は次のとおりです:

1. クッキーデータが長すぎる場合にブロックする

2. 純粋な POST をブロックする

当時、偽のプロトコルを使用して成功裏に回避しました。将来的には、試してみることができます。主なアイデアは、fuzz のプロセスです。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。