| 1830 | /// Results from Supabase exploitation tests |
| 1831 | #[derive(Debug, Clone, Serialize, Deserialize)] |
| 1832 | pub struct SupabaseExploitResult { |
| 1833 | pub supabase_url: String, |
| 1834 | pub key_type: String, // "anon" or "service_role" |
| 1835 | pub key_preview: String, |
| 1836 | pub source_js_url: String, |
| 1837 | |
| 1838 | // Auth tests |
| 1839 | pub signup_enabled: bool, |
| 1840 | pub signup_response: String, |
| 1841 | pub auth_settings: Option<serde_json::Value>, |
| 1842 | |
| 1843 | // Database tests |
| 1844 | pub tables_accessible: Vec<String>, |
| 1845 | pub tables_response: String, |
| 1846 | pub sample_data: Vec<(String, String)>, // (table_name, first_row_preview) |
| 1847 | |
| 1848 | // Connection test |
| 1849 | pub rest_api_accessible: bool, |
| 1850 | pub rest_api_response: String, |
| 1851 | |
| 1852 | // Overall |
| 1853 | pub severity: String, |
| 1854 | pub findings: Vec<String>, |
| 1855 | } |
| 1856 | |
| 1857 | /// Validate and exploit Supabase key - test signup, tables, data access |
| 1858 | pub async fn validate_supabase_key( |
nothing calls this directly
no outgoing calls
no test coverage detected