64 views
# Reverse engineering [Campus UGA](https://app-campus.univ-grenoble-alpes.fr/web/) ## Login Le MdP est codé avec l'algo "AES128 CBC PKCS7", la clé `jfkgltshGD6_\"hrj` et le vecteur d'initialisation `fgghjhgkdthykhjg`^[C'est absolument pas un dev qui a tapé sur son clavier au hasard] (exprimé·es en binaire ASCII). Je ne sais pas à quoi sert ce chiffrement vu que la clé est unique et publique... ```bash xh 'https://app-campus.univ-grenoble-alpes.fr/api/auth/login' \ Accept:application/json \ DeviceId:null \ DeviceVersion:20100101 \ DeviceOs:Web \ 'DeviceManufacturer;' \ 'DeviceModel;' \ X-App-version:1.11.0 \ etab=UGA username=onghenae password="$PW" ``` ```json { "userId":"onghenae", "directory":"TRIODE", "nom":"Onghena", "prenom":"Edgar", "email":"Edgar.Onghena@etu.univ-grenoble-alpes.fr", "genre":"MALE", "nationalite":"FRENCH", "annee":"L2", "etablissement":"UGA", "filiere":"GRENOBLE - INGENIEUR ECOLE POLYTECH SPECIALITE INFORMATIQUE - ANNEE 3", "tel":"[REDACTED STRING]", "rights":"USER", "role":{ "key":"USER", "rights":[ "canConnect", "canExpandSearchOnMapWithOSM", "canChangeThemeColor", "canSeeDiagnostics", "canSearchOnMap", "canSeeMapTab", "canChangeTimetableColor", "canChangeTimetableStartDate", "canSeeTimetableTab", "canHideEventsFromTimetable", "canVote", "canSeeContactsTab", "canSeeEventsTab", "canBookEvent", "canUseTimetableAssistance", "canSeeServicesTab", "canSwitchToDebugMode", "canSearchContact", "canEditProfile", "canSeeMailLink" ] }, "modificationEmailEnAttente":false, "restrictedToSources":[ ], "tester":false, "canFindAllVets":false, "vetExp":null, "customEtabVet":null, "customEtabVetMap":null, "preferences":{ "mailPublishNotif":false, "pushPublishNotif":true, "mailInfoNotif":false, "pushInfoNotif":true, "preferredCategories":[ ], "siteGeographique":{ "title":"Grenoble", "lat":45.19230550239402, "lng":5.7708048820495605, "shortId":"GRE", "htmlBgColor":"#53a2a6", "radius":55.0 }, "mailAdeNotif":null, "pushAdeNotif":null }, "sessionId":"[REDACTED UUID]", "cgu":"CGU_READ", "biperId":"[REDACTED INT]", "roles":[ { "type":"ETUDIANT", "user_id":"[REDACTED INT (n° étudiant)]", "helico_id":null, "etab":"UGA", "mailUrl":"https://webmail.etu.univ-grenoble-alpes.fr/mail", "servicesInfos":{ "bu":{ "borrowing":[ ], "bus":[ "BU Droit Lettres", "BU Valence Latour-Maubourg", "Bib. DSDA Valence Briffaut", "Bib. DSDA Valence Rabelais", "Bib. IUT-IAE de Valence", "Bibliothèque de l'Institut d'urbanisme et de géographie alpine", "Bibliothèque des Langues", "Bibliothèque universitaire Joseph-Fourier", "Bibliothèque universitaire Médecine Pharmacie", "Bibliothèque universitaire Professorat éducation Bonneville", "Bibliothèque universitaire Professorat éducation Chambéry", "Bibliothèque universitaire Professorat éducation Grenoble", "Bibliothèque universitaire Professorat éducation Valence", "Centre De Ressources Olivier de Serres - Pradel (Ardèche)", "Ense3 GreEn-ER - Médiathèque", "Fac de Droit", "Faculté d'Economie de Grenoble", "G@el", "GIPSA-Lab bibliothèque mutualisée (site ENSE3 Ampère)", "Grenoble IAE", "Génie Industriel - bibliothèque", "IREM - bibliothèque", "IUT1 - Site Saint-Martin-d'Hères - bibliothèque", "Institut Fourier - bibliothèque", "Institut de la Communication et des médias", "L'R DLST", "PAGORA - CTP Bibliothèque Anselme-Payen", "Phelma - bibliothèque", "UFR Arts et Sciences humaines", "UFR LLASIC BULLES" ], "footers":[ "Rendez-vous sur Beluga (Bibliothèque En Ligne UGA, sur https://beluga.univ-grenoble-alpes.fr) pour gérer vos prêts, effectuer des recherches, et bien plus!" ], "hasError":false }, "print":{ "buyTicketsUrl":"https://impression.univ-grenoble-alpes.fr/", "remaining":18.1227, "quota":0.0, "unit":"EURO", "serverType":"PAPERCUT" }, "pool":{ "remaining":null, "onlineTicketing":null, "soldes":[ ] }, "accessControl":{ "active":false }, "opposition":{ "oppositionSteps":[ ], "canRequestOpposition":true }, "izly":{ "activated":null, "activationUrl":null } }, "vetList":[ ], "vetListWithoutInteraction":[ ], "vetMap":{ } } ], "photo":null, "availableCategories":{ "actu":"Actualités", "spor":"Sports", "sant":"Santé / Bien être", "spec":"Spectacle / Concert", "expo":"Exposition / Patrimoine", "cine":"Cinéma / Projection", "conf":"Conférence / Débat", "fest":"Animation / Festival" }, "current_timestamp":1658139510191, "cms_infos":{ "anonymizedCsn":"80...1904", "active":true, "etab":"UGA", "userId":"[REDACTED INT]", "euroUrl":"http://esc.gg/[REDACTED UUID]", "unicampusAvailable":true, "waitingCardReleaseCode":null }, "savedAdeRsc":false, "diagnosticsAvailable":null, "adeManager":false } ``` On s'intéresse à `sessionId` qui devra être passé en entête HTTP dans toutes les requêtes futures (c.f. ci-dessous). ## Events ```bash xh 'https://app-campus.univ-grenoble-alpes.fr/api/events-manager/event' \ Accept:application/json \ DeviceId:null \ DeviceVersion:20100101 \ DeviceOs:Web \ 'DeviceManufacturer;' \ 'DeviceModel;' \ X-App-version:1.11.0 \ session:[session UUID] ``` ```json [ { "eventId": "HE-1641305178080", "title": "Escape juillet 2022 - Sport et fraîcheur !", "description": "Escape est un lieu de vie étudiant situé dans le quartier du polygone scientifique de Grenoble.\n\nEscape est ouvert en juin et juillet selon ces horaires d'ouverture: \n\n- En juin, ouvert du lundi au vendredi de 17h à 22h\nmais fermé exceptionnellement ces jours : lundi 27 juin\n\n- En Juillet, ouvert le lundi 9h30-12h30/13h30-17h30 -les mardis et mercredis de 14h à 22h\n\nLa participation aux activités d’Escape et l’accès au lieu sont gratuits pour tous les étudiants (quel que soit leur cursus).\n\nProgramme de juin à juillet 2022\n\nBadminton\n• Les mardis de 18h à 20h\n\nVolley \n• Les mardis de 20h à 22h \n\nBeach Volley \n• Les mercredis de 19h à 22h\n\nBasket\n• Les mercredis de 18h à 20h\n\nFutsal\n• Les mercredis de 20h à 22h\n\nPing-Pong\n• En accès libre pendant les horaires d'ouverture\n\nEt aussi, pendant les heures d'ouverture, en libre accès : \"ESCAPE sur mer\" (jeux d'eau, transats, parasols, dans le jardin)\n\nInfos pratiques : \nContact : Claire Barabé\nMail : escape@crous-grenoble.fr\nESCAPE\n64 Avenue des Martyrs\n38000 Grenoble\nTram B arrêt Marie-Louise Paris CEA\n\nEn savoir plus : https://www.crous-grenoble.fr/culture-sport-animation/escape/", "link": null, "imageUrl": "https://app-campus.univ-grenoble-alpes.fr/web/imgs/event_313066/cover.jpg?ts=1656316551870", "dateFrom": 1656626400000, "dateTo": 1659218400000, "creationDate": 1641305178000, "publicationDate": 1656666060000, "notificationSilent": true, "notificationTitle": null, "notificationBody": null, "place": { "address": "62 Avenue des Martyrs, 38000, Grenoble, Isère, Auvergne-Rhône-Alpes, FRA", "title": "Escape", "position": { "lat": 45.2004915587059, "lng": 5.70717751979828 } }, "counts": null, "booking": null, "published": true, "scheduled": null, "source": "EVT-UGA", "restriction": "ETUDIANT", "categories": [ "Animation / Festival", "Sports", "Gratuit" ], "siteGeographique": { "title": "Grenoble", "lat": 45.19230550239402, "lng": 5.7708048820495605, "shortId": "GRE", "htmlBgColor": "#53a2a6", "radius": 55.0 } }, ... ``` ## Timetable `/api/timetable/getLastFromResources`