Toegang krijgen tot een aspx pagina met behulp van Snoopy
Door
Nick van Berg
op 14-04-2014 11:13
gewijzigd op 14-04-2014 11:17
4.920 views
Hallo, Ik ben recent begonnen met PHP en ik ben bezig met een script waarbij ik met behulp van snoopy mezelf door een 2 pagina's met formulieren probeer te loodsen, waarbij ik vervolgens terechtkom op de pagina waar ik wil zijn.
Het doel is om met mijn php class in een keer bij mijn rooster te komen, momenteel gaat dit als volgt:
-Je komt op de eerste pagina: default.aspx hier voer je de eerste 4 letter van je achternaam in en drukt op zoek
-Je komt op de tweede pagina: LogInWebForm.aspx hier kies je uit de lijst je naam en klikt op 'rooster'
-Je komt op de derde pagina: hier zie je je rooster
Het lastige is, dat je niet simpelweg een formuliertje kan doen en direct naar de roosterpagina, maar dat je je door de pagina's heen moet loodsen, en elke keer de _VIEWSTATE variable moet ophalen (waarbij de eerste "static" is).
Echter, krijg ik bij het uitvoeren hiervan de volgende print terug:
Invalid postback or callback argument. Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page. For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.
Waaruit blijkt dat zij een bepaalde instelling hebben gezet "to verify that arguments to postback or callback events originate from the server that originally rendered them".
Ik denk als volgt, als je het met je browser kan doen, moet het met PHP ook mogelijk zijn. Is er een mogelijkheid om mijn script hierop aan te passen, of is het wellicht beter om een geheel andere weg in te slaan?
Het klinkt als een beveiliging die je probeert de omzeilen?
Kan je niet vragen of ze een API hebben, dat lijkt me doeltreffender dan een site proberen te scrapen die opeens van de ene op de andere dag na een update van hun kant weer anders werkt.
Het is vast wel mogelijk, maar hun proberen zich er juist voor te beschermen voor zulke acties. Dus het is niet gewenst. De vraag is dan ook of je er wel zoveel moeite in wil steken om je rooster kunnen zien zonder in te loggen. Hun krijgen waarschijnlijk wel meldingen van jou pogingen, dus je hebt ook nog de kans geblokkeerd te worden.
Het is simpelweg een site van mijn school, die gebruik maakt van het programma contacturenplanner.
Probeert u gerust zelf mijn rooster te zien op http://walterbosch.cupweb6.nl (zoek op berg) er is ook geen pincode nodig als je alleen het rooster wil zien.
Bovendien is er een redelijk aantal apps doe werken met contacturenplanner (ook gemaakt door scholieren zelf).
Ja, maar dan alsnog wil dat niet zeggen dat het zomaar gekopieerd mag worden. Dus loop eens langs de IT-afdeling van je school en leg je probleem eens uit. Of zoek of ze een API aanbieden waarmee je de data via alternatieve gestandaardiseerde wijze op halen, misschien gebruiken die andere app's dat ook?
>>> En dat vind ik nu het leukste van ASP.NET, hoewel ik die taal niet ken
De meldingen bedoel je? Geen idee. Ik ken de taal ook niet.
>>> Het is simpelweg een site van mijn school, die gebruik maakt van het programma contacturenplanner.
>>> Bovendien is er een redelijk aantal apps doe werken met contacturenplanner (ook gemaakt door scholieren zelf).
Dat zegt natuurlijk niet dat het is toegestaan.
>>> Of zoek of ze een API aanbieden
Als je op cupweb6.nl kijkt lijkt t op een script uit de vorige eeuw (met een update in 2007). Lijkt me dat er geen API voor is.
Ik heb het de informatica sectie op school voorgelegd, zij denken dat het geen probleem is als ik de informatie van cupweb haal. Het probleem is dat het programma/script extern gehost is, en dat zij er dus geen veranderingen in kunnen maken. Het is tevens een verouderd script, dat verder geen uitbreidingsmogelijkheden of communicatiemogelijkheden heeft betreffende de webinterface.
@Ivo P
<option value="Berg van den Nick (3H1)[***]">Berg van den Nick (3H1)[***]</option>
Ik denk dat de value van die option steeds gelijk is voor jou?
Dan kun je de eerste stap dus al overslaan.
Hoe bedoel je precies? Om op de tweede pagina te komen zal je eerste door de eerste stap moeten lopen (session id).
>> Hoe bedoel je precies? Om op de tweede pagina te komen zal je eerste door de eerste stap moeten lopen (session id).
Ja en nee. Je zou de pagina inderdaad eerst moet ophalen om te weten te komen wat de viewstate en evenvalidation zijn. En de session opslaan in een cookie.
__EVENTTARGET:
__EVENTARGUMENT:
__VIEWSTATE:/wEPDwUJNDAxOTQ1MjQyZGQ=
__EVENTVALIDATION:/wEWEQLc4selBALV+7CaCAK61MapDwL19/+CDQKiyObxCQLI98qEDwKtvJL3BQLDmv/6CAL99sv/AgLCyenSDwK/6piPCwK86JPdCwLBkL6FCAKD/a/UCQKV0fvMDwK+j6zRAwKA1s+bCA==
_nameDropDownList:Berg van den Nick (3H1)[150033]
_pincodeTextBox:
_roosterbutton:Rooster
Dan hoef je dus niet eerst je naam op te halen, want die weet je al.
[size=xsmall]Toevoeging op 14/04/2014 14:31:42:[/size]
Ik kwam dit nog hier tegen.
Misschien heb je er wat aan.
Alle ** even aanpassingen naar je eigen.
Beste Micheal, dit is inderdaad waar ik de code vandaan heb. Als je ziet is het ook vrijwel gelijk aan mijn code, alleen is mijn code aangepast op mijn school (tenzij je foute aanpassingen ziet). Ik kon trouwens ook die code niet aan de praat krijgen (rauwe copy, paste & run).
Naar aanleiding van jouw code had ik nog even dit gemaakt:
Invalid postback or callback argument. Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page. For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.