Recon
Tác giả nhận thấy rằng đa số các internal domain của Uber đều redirect đến uber.onelogin.com
để thực hiện xác thực thông qua cơ chế SAML sử dụng dịch vụ của OneLogin.
SAMLRequest được gửi thông qua query param như sau:
Khi decode thì tìm được ACS URL là https://carbon-prototype.uberinternal.com:443/oidauth/saml_consume
:
Tác giả cố gắng thực hiện SAML Authentication Bypass nhưng không thành công.
The Bug
Tác giả thử brute-force thư mục oidauth/
sử dụng dirsearch
thì tìm thấy endpoint sau:
https://carbon-prototype.uberinternal.com:443/oidauth/logout
Khi nhấn vào link này thì nó redirect về trang sau:
https://carbon-prototype.uberinternal.com/oidauth/prompt?base=https%3A%2F%2Fcarbon-prototype.uberinternal.com%3A443%2Foidauth&return_to=%2F%3Fopenid_c%3D1542156766.5%2FSnNQg%3D%3D&splash_disabled=1
Decode:
https://carbon-prototype.uberinternal.com/oidauth/prompt?base=https://carbon-prototype.uberinternal.com:443/oidauth&return_to=/?openid_c=1542156766.5/SnNQg==&splash_disabled=1
Tác giả thay đổi giá trị của param return_to
thành javascript:alert(123);
thì trang web được render có đường link có thể trigger JavaScript.