Sendy schreef op 12 augustus 2004 @ 16:50:
Als mijn computer iets doet kan ik zien wat en hem iets anders laten doen. Als ik dus zie dat-ie een blob binary data over internet verstuurd, kan ik dat afvangen en andere binary data opsturen. Hiervoor heb ik dus alleen de kennis nodig van wat mijn computer precies gedaan heeft voordat hij de data opstuurde.
.. en dat kan je makkelijk zien met Burp Proxy:
http://portswigger.net/proxy/
.. hiermee kun je alle verkeer van en naar de server afvangen, on-the-fly wijzigen etc.
Bosmonster schreef op 12 augustus 2004 @ 17:50:
Wat je zou kunnen doen is de flash file doorsturen vanuit een serverside bestand en die een sessie aan laten maken. Deze sessie heb je nodig om een score te posten.
Zo kun je alleen een score posten vanuit de flashfile als het goed is. Of in iedergeval alleen vanuit de pagina waarin de flashfile is geladen. Dus niet met een extern scriptje ofzo.
Een scriptje waarmee zo'n pagina automatisch wordt opgehaald is snel geschreven, daarmee heb je de sessie te pakken die je weer kunt gebruiken om een scoren te submitten. Natuurlijk zal het voor 99% van de bezoekers te moeilijk zijn, maar het is nou net die ene procent die het wel kan, die je score verziekt.
---
Andere problemen die je hebt:
- Cookie-based security is simpel te hacken.
- IP-based security is vrij simpel te hacken/omzeilen. Internet barst van de lijsten met anonymous proxies.
- Referrer-based security is vrij simpel te faken.
Mijn tips:
1. Gebruik time delays. De tijd tussen verschillende games dient minimaal x seconden te bedragen. De tijd tussen verschillende antwoorden dient minimaal x seconden te bedragen etc. Zo frustreer je geautomatiseerde scripts die alles direct processen.
2. Vraag een visuele herkenning (letters/cijfers verwerkt in een plaatje die overgetypt moeten worden). Zo frustreer je volledig geautomatiseerde scripts.
3. Gebruik korte-tijd-authorisatie zoals DoktorAnders (geen familie

) al aangaf. Hiermee voorkom je dat mensen handmatig via programmaatjes als Burp Proxy, een en ander kunnen aanpassen: daar is dan geen tijd voor.
Een Flash/PHP-game die ik ooit met een Flasher heb gemaakt en waarmee voor enkele duizenden euro's aan prijzen weggegeven werden, is niet gehacked. Het maakte gebruik van:
- Bestandscontrole (stylesheet, javascript, pagina, flash-bestanden etc moesten in een bepaalde sessie geladen zijn)
- Sessie heeft slechts een beperkte geldigheidsduur
- Foutmeldingen werden niet doorgegeven (sterke opmerking van pietje63). Men kon gewoon het hele spel spelen met alle client-server-interactie van dien, en pas op het eind werd duidelijk dat de score niet werd geaccepteerd.
- Versleuteling van heen-en-weer-gestuurde data. De ontsleuteling staat natuurlijk in Flash gescript, maar het voorkomt in ieder geval dat mensen met een programma als Burp Proxy kunnen zien wat er heen en weer wordt gestuurd
- Getallen werden niet doorgegeven als getallen op zich, maar als een modulus. In plaats van (bv) 19 stuurde je dan 285112891 terug, in plaats van 20 bijvoorbeeld 18085538. Immers, 285112891%48357 = 19, 18085538%48357 =20 etc. Dat getal staat dan wel in de Flash-file of wordt ook weer doorgestuurd, maar het is een extra hindernis. Score submitten geschiedde ook op dezelfde manier.
- Time delays: minimum aantal seconden tussen bepaalde stappen
- Er werden een aantal fake variabelen mee- en teruggestuurd
Bovendien sloegen we van alles op ter controle
- Elke bezoekssessie kreeg een eigen identifier
- Elke game kreeg een eigen identifier
- Identifiers werden gekoppeld aan ip/browser/andere gegevens
.. en hadden en een lijst met IP-adressen van ca. 25.000 proxy-servers en gingen in de beheeromgeving een alarmbel rinkelen wanneer iemand een IP-adres uit die lijst had gebruikt.
/edit: er werden wel pogingen tot hacken gedaan. Het is erg leuk om te zien wat mensen allemaal uitvreten. Scriptjes werden geschreven, programma's ontwikkeld, anonymous proxies ingezet, NAW-gegevens volautomatisch gegenereerd etc (die laatste wel allemaal volgens herkenbare patronen). In de logs kwamen we via referrers websites tegen waar het werd besproken en uitgeplozen
[
Voor 5% gewijzigd door
Anders op 12-08-2004 21:09
]
Ik spoor veilig of ik spoor niet.