Hacking Python

Prowadzący: Jakub Nowak


Rozbierzemy Pythona na części i wykorzystamy zdobytą wiedzę w hakerskich zadankach
Zadania kwalifikacyjne:
Kategorie:
informatyka

Errata

Sun 16 May 22:41:07 CEST 2021: Termin oddawania rozwiązań został przesunięty na 19 maja.

Sun 9 May 14:33:09 CEST 2021: Zmniejszyłem liczbę powtórzeń z 1000 do 128 w zadaniach "obliczenia" i "bajtsy".

Sun 9 May 14:33:09 CEST 2021: Swoje rozwiązania można teraz przetestować pod adresem 13.48.252.167. Więcej informacji w treści zadań kwalifikacyjnych (jeśli dalej widzisz starą treść, spróbuj odświeżyć treść przy pomocy CTRL+F5).

Opis

Python jest niewątpliwie bardzo popularnym językiem. Na warsztacie poznasz popularne błędy jakie można w nim popełnić. Dowiesz się jak je wykorzystać w celu zhakowania aplikacji (np. uzyskania RCE).

Na warsztacie poznasz:
  1. Różne mechanizmy refleksji:
    1. Różne atrybuty o nazwach zaczynających się od __
    2. Konstruktor function
    3. Objekt code
  2. Bytecode cpythona
  3. Bytecode pickle w cpythonie
  4. Framework pwntools (trochę)

Wymagania

  1. Podstawowa znajomość pythona 3
  2. Dowolny komputer
  3. Trzeba lubić kminę i robienie zadanek :)

Co znaczy podstawowa znajomość pythona? Patrz zadania kwalifikacyjne. ;)
Jeżeli niedawno zacząłeś uczyć się pythona to szczególnie zachęcam do zadawania pytań. Pytania "jak zrobić w pythonie [...]" są jak najbardziej w porządku.

Przydatne rzeczy

  1. pwntools – wprowadzę tę bibliotekę na warsztacie, ale chętni mogą użyć jej w zadaniach kwalifikacyjnych
  2. https://youtu.be/ito-Zzrv33U

Uwaga: Od edycji 2021, uczestnicy przesyłają rozwiązania przez stronę, a nie prowadzącym na maila. Zwróćcie im na to uwagę w treści: jeśli zadania nie zostaną przesłane przez stronę, nie będziecie mieli możliwości wpisania im wyników!