Zarówno Salesforce, jak i ServiceNow mają wbudowane, stałe konta gościnne dla nieuwierzytelnionych odwiedzających. Tych kont nie można usunąć. Ich uprawnienia — jakie rekordy i obiekty mogą odczytywać — są konfigurowane przez każdą organizację. Jeśli profil gościa ma dostęp do odczytu do rekordu, każda osoba w Internecie może go pobrać za pomocą w pełni legalnych endpointów API.
W Salesforce (framework Aura):
/aura lub /s/sfsites/aura.HostConfigController.getConfigData, aby wymienić obiekty (Konto, Kontakt, Sprawa, Lead, Użytkownik, ContentDocument itp.), do których gość ma dostęp. SelectableListDataProviderController.getItems do przewijania wszystkich rekordów w każdym dostępnym obiekcie. W Salesforce (framework LWR — Lightning Web Runtime):
POST /webruntime/api/services/data/{version}/graphql?asGuest=trueEntityDefinition, a następnie odczytując rekordy z paginacją opartą na kursorach. W ServiceNow:
/api/now/sp/search — natywne API wyszukiwania Service Portal, które jest w dużej mierze nieudokumentowane i ma prawie zero dokumentacji online lub narzędzi open-source, które by się do niego odwoływały. Próby samorejestracji (Salesforce):
158.220.87.79, hostowany na VPS Contabo (niemiecki dostawca), rozwiązywany do domeny city-forum.com (zarejestrowanej w 2002 r., porzuconej, a następnie ponownie wykorzystanej). Go-http-client jako User-Agent, co ułatwia jego identyfikację w logach. W przypadku ServiceNow: Logi transakcyjne platformy (syslog_transaction) nie rejestrują treści żądania POST dla zapytań /api/now/sp/search. Obrońcy mogą zobaczyć, że zautomatyzowane wyszukiwania miały miejsce i ile danych zostało zwróconych (poprzez kolumnę długości wyjścia), ale nie mogą określić dokładnych terminów wyszukiwania ani które konkretne rekordy zostały pobrane.
W przypadku Salesforce: Ruch związany z wyliczaniem gości składa się z legalnych, zgodnych z protokołem wywołań API, które wyglądają jak normalny ruch na stronie. Chociaż Event Monitoring może pokazać wolumen zdarzeń AuraRequest i Sites od użytkowników-gości, logi pokazują, że dane były żądane, ale nie konkretną treść tego, co zostało zwrócone w odpowiedziach GraphQL lub Aura.
Innymi słowy, możesz zobaczyć, że atakujący był obecny i ile danych pobrał, ale nie możesz odtworzyć dokładnie, które rekordy lub pola zostały wyodrębnione.
sp_portal, m2m_sp_portal_search_source i sp_search_source. Odłącz źródło wyszukiwania, którego publiczny portal nie potrzebuje.is_scripted_source, data_fetch_script i to, czy używa GlideRecordSecure (egzekwującego ACL) vs. zwykłego GlideRecord (który nie egzekwuje).kb_uc_can_read_mtom zamiast ślepo edytować reguły udostępniania.getItems i getConfigData z USER_TYPE = 'Guest'/webruntime/.../vNN.0/graphql oraz trafień na /SiteRegister i /CommunitiesSelfReg.syslog_transaction: Szukaj żądań /api/now/sp/search wykonanych jako gość. Sortuj według długości wyniku — wiersze zwracające znacznie więcej niż małą bazową wartość pustego wyniku wskazują na wyszukiwania, które zwróciły treść.