Zuerst würde ich möglichst viele Informationen sammeln:
- Programmiersprache (bzw, korrekter: benötigte Laufzeitumgebung), damit man auch die passenden Tools für die Analyse nehmen kann:
https://tuts4you.com/download.php? (Java/NET machen z.B im OllyDbg nicht soo viel Spass
)
Zudem machen Java/NET/Python&Co es dem Programmierer schwer, "klassische" Stack/Heapoverflows zu erschaffen, können allerdings nichts gegen "logische" Fehler ausrichten (so a la "if File.exists("admin.secret") then show_admin_interface()") und machen ganz andere Fehler möglich ("print "Mein ultimativer Taschenrechner:", eval(input)" oder "include(menu_auswahl)")
- Eingabemöglichkeiten (Dateien/Netzwerk) und die dabei verwendeten Formate.
Jetzt schaut man im Reflector/OllyDbg/IDA/<siehe: passende Tools für die Analyse> wie diese Eingaben behandelt werden.
Leider wird da i.d.R nicht "Fehler" dran stehen und es hängt von eigenen Kenntnissen ab, ob und welche man findet
Zum Beispiel: pseudo-java-python mit mindestens 2 potentiellen, "remote" für einen Angreifer ausnutzbaren Fehlermöglichkeiten:
Code:
if (password == user_db.get(user)):
...
if item_name not in search_cache_hashmap:
search_cache_hashmap.set(item_name, search(item_name))
return search_cache_hashmap.get(item_name)
(nein, auch wenn direkte Passwortübermittlung an sich schon als eine einzige, große Fehlerquelle angesehen werden kann, zählt 's nicht
)