Dodany: 2019-01-18 05:12:12 | Ostatnio wołany: 2019-01-18 05:13:10


NGINX to szybki i wydajny serwer HTTP. Ale czy wiesz jak go prawidłowo i bezpiecznie skonfigurować?
W dzisiejszym odcinku #od0dopentestera kilka przykładów błędnych konfiguracji, które mogą narazić nas na atak.

location /frytki {
alias /test/;
}

Jeżeli location nie kończy się slashem / możliwe jest pobieranie treści poza katalogiem test:

http://strona.local/frytki../plik_poza_katalogiem.html


add_header X-Frame-Options SAMEORIGIN;
location /xss/ {
add_header X-XSS-Protection "1; mode=block";
alias /test/;
}

Jeżeli add_header używany jest w polu nadrzędnym i podrzędnymi wartości nie są łączone i wyświetla się jedynie ta z pola podrzędnego.

W tym wypadku w lokalizacji /xss nie będzie ustawiony nagłówek X-Frame-Options.

if ($http_host ~ "admin.local") {
set $block "1";
}

Gdy porównujesz tekst przy pomocy tyldy ~ pamiętaj, ze rozróżnia ona wielkość liter.

W tym wypadku blokadę można ominąć używając nagłówka:

Host: ADMIN.LOCAL

Konfiguracje można sprawdzić automatycznie używając skryptu gixy.

Jeżeli chcesz być wołany dodaj się do Mirkolisty.
Masz pytanie na temat bezpieczeństwa? Zadaj je na grupie od 0 do pentestera na Facebooku.

#security #bezpieczenstwo #programowanie #programista15k #informatyka #it #nauka #technologia #ciekawostki #gruparatowaniapoziomu

Przejdź do wpisu

Dodany: 2019-01-14 14:36:11 | Ostatnio wołany: 2019-01-14 14:37:08


Google Dorks - znajdowanie podatności przy użyciu wyszukiwarki.
Opis ataku "Pass the cookie".
Phishing wykorzystujący nietypowe czcionki.
Konkursy typu CTF wstępem do nauki bezpieczeństwa.
Niebezpieczne kody QR na bankomatach.
Jak udało się złamać projekt reCaptcha?

Masz pytanie na temat bezpieczeństwa? Zadaj je na grupie od 0 do pentestera na Facebooku.
Jeżeli chcesz być wołany dodaj się do Mirkolisty.
Wersja audio.

#od0dopentestera #bezpieczenstwo #programowanie #informatyka #it #nauka #technologia #ciekawostki #podcast #swiat

Przejdź do wpisu

Dodany: 2019-01-11 05:24:59 | Ostatnio wołany: 2019-01-11 05:27:55


Czasami programiści zakładają, że niektóre funkcje są bezpieczne ze względu na swoją naturę.
Co bowiem złego może się stać podczas sprawdzania czy dany plik istnieje na dysku.
Funkcja file_exists przyjmuje tylko jeden parametr i zwraca prawdę lub fałsz.
Ale jak to w #od0dopentestera bywa - diabeł tkwi w szczegółach.

class aplikacja {
function __construct($name) {
$this->name = 'pliki/'.$name;

if (strpos($this->name, "..") !== false) {
die('HACKER');
}

if (!file_exists($name)) {
echo 'PLIK NIE ISTNIEJE';
}
}

function __destruct() {
unlink($this->name);
}


}

W tym kawałku kodu sprawdzamy, czy plik o danej nazwie istnieje w katalogu pliki.
Jeżeli tak - usuwamy go przy pomocy funkcji unlink.

Chcemy obsługiwać wyłącznie ten jeden katalog - chronimy się przed atakiem path traversal sprawdzając, czy nie podano podwójnych kropek.
To chroni nas przed ciągami w stylu ./pliki/../../inny_katalog/.

Niektóre funkcje związane z odczytywaniem plików z dysku obsługują tak zwane wrapery.
To tak naprawdę inna nazwa na obsługę danego protokołu np. http czy https.
#php obsługuje format PHAR - czyli pewnego rodzaju archiwa, które mogą przechowywać całą aplikację w jednym pliku.
Można to porównać do plików JAR w Java.

Archiwum oprócz treści plików przechowuje także metadane.
Są one trzymane w zserializowanej formie - oznacza to że do ich odczytu używana jest funkcja unserialize.
Ona to jest niebezpieczna - ponieważ podczas jej użycia interpreter automatycznie wywołuje magiczne metody - co może doprowadzić do ataku object injection.

Wystarczy więc stworzyć paczkę PHAR z obiektem aplikacja, w której name ustawiamy na złośliwą wartość.
Taki plik wysyłamy na serwer a następnie odnosimy się do niego przy użyciu funkcji file_exists wykorzystując protokół phar://.
Wtedy to dany plik zostanie otwarty a podczas deserializacji metadanych zostanie wywołana magiczna metoda __destruct.
Dzięki temu możemy usunąć dowolny plik i ominąć zabezpieczenie.

Jeżeli chcesz być wołany dodaj się do Mirkolisty.
Masz pytanie na temat bezpieczeństwa? Zadaj je na grupie od 0 do pentestera na Facebooku.

#security #bezpieczenstwo #programowanie #programista15k #informatyka #it #nauka #technologia #ciekawostki #gruparatowaniapoziomu

Przejdź do wpisu

Dodany: 2019-01-07 14:34:59 | Ostatnio wołany: 2019-01-07 14:35:41


Co to są Canary Tokens i jak można wykorzystać je do wykrycia włamania we wczesnej jego fazie.
Jakie informacje na temat naszych zakupów posiada Google?
Czy hasła maskowane stosowane w bankach to rzeczywiście taki dobry pomysł?
Jak przekonać użytkownika do zainstalowania złośliwego oprogramowania przy pomocy HTML?
O metodzie ataku poprzez kabel USB podpinany do komputera.

Masz pytanie na temat bezpieczeństwa? Zadaj je na grupie od 0 do pentestera na Facebooku.
Jeżeli chcesz być wołany dodaj się do Mirkolisty.

#od0dopentestera #bezpieczenstwo #programowanie #informatyka #it #nauka #technologia #ciekawostki

Przejdź do wpisu

Dodany: 2018-12-24 10:19:23 | Ostatnio wołany: 2018-12-24 10:20:04


Jak działa atak Business Email Compromise?
Czy phishing może doprowadzić do ewakuacji szkoły?
Jak nie cenzurować internetowych map?
Czy można wykraść tajne dane z telefonu, jeżeli podłączymy go do złośliwej ładowarki?

Masz pytanie na temat bezpieczeństwa? Zadaj je na grupie od 0 do pentestera na Facebooku.
Jeżeli chcesz być wołany dodaj się do Mirkolisty.

#od0dopentestera #bezpieczenstwo #programowanie #informatyka #it #nauka #technologia #ciekawostki

Przejdź do wpisu

Dodany: 2018-12-20 09:11:04 | Ostatnio wołany: 2018-12-20 09:11:54


Poliglota to osoba znająca wiele języków. Ale termin ten ma również znaczenie w odniesieniu do kwestii związanych z bezpieczeństwem.
Dzisiaj w od #od0dopentestera 0dopentestera o plikach polyglot, które przyspieszają testowanie aplikacji internetowych.

Weźmy prosty atak XSS.
Dochodzi do niego jeżeli programista nie będzie odpowiednio filtrował danych pochodzących od użytkownika.
Te dane, mogą być wyświetlane na stronie w różnych miejscach - tak zwanych kontekstach.
Standardowo jeden payload - to jeden kontekst.

Aby sprawdzić czy błąd występuje w różnych kontekstach potrzebujemy różnych ciągów znaków.
Dlatego też w celu oszczędności czasu wykorzystuje się tak zwane polygloty.
Są to specjalnie ciągi znaków, które zostały przygotowane w taki sposób, aby działały w wielu kontekstach równocześnie.
Warto spojrzeć na stronę konkursu na najkrótszy polyglot, który jest w stanie przetestować aż 20 różnych miejsc na raz.

Tą idee można z powodzeniem stosować w innych miejscach np. w atakach SQL Injection.
Można tak również omijać wbudowane mechanizmy bezpieczeństwa tworząc plik .jpg, który równocześnie jest prawidłowym kodem #javascript

Masz pytanie na temat bezpieczeństwa? Zadaj je na grupie od 0 do pentestera na Facebooku.
Jeżeli chcesz być wołany dodaj się do Mirkolisty.

#security #bezpieczenstwo #programowanie #programista15k #informatyka #it #nauka #technologia #ciekawostki #gruparatowaniapoziomu

Przejdź do wpisu

Dodany: 2018-12-17 14:35:53 | Ostatnio wołany: 2018-12-17 14:36:30


Jak działają dynamicznie generowane domeny i dlaczego są wykorzystywane w malware?
Co to jest atak miliarda uśmiechów, inaczej nazywany bombą XML?
Jak jednemu z badaczy udało się stworzyć własny adres e-mail w domenie google.com?
Czy znasz popularne błędy w smart kontraktach Ethereum?
A na koniec opis ataku Cross-Site Search wykorzystujący długie zapytania w systemach zgłaszania błędów.

#podcast Szurkogadanie - zestawienie ciekawych informacji o #bezpieczenstwo
Dostępny również na Spotify oraz Google i Apple Podcasts.

Jeżeli chcesz być wołany dodaj się do Mirkolisty.

Masz pytanie na temat #security? Zadaj je na grupie od 0 do pentestera na Facebooku.

#programowanie #swiat #informatyka #it #nauka #technologia #ciekawostki #gruparatowaniapoziomu

Przejdź do wpisu

Dodany: 2018-12-13 05:35:03 | Ostatnio wołany: 2018-12-13 05:36:37


Jak wyglądają realne błędy w aplikacjach?
W dzisiejszym odcinku #od0dopentestera pokażę Ci 4 błędy w oprogramowaniu Kallithea, które umożliwiają dostęp do cudzych danych.

Kallithea to serwer #git napisany w #python

Uprawnienia w całej aplikacji są weryfikowane przy pomocy dekoratorów.

Za każdym razem gdy chcemy sprawdzić czy użytkownik posiada dostęp do danej funkcjonalności - zamiast wywoływać funkcję HasRepoPermission - możemy użyć dekoratorów.

@HasRepoPermissionAllDecorator('repository.admin')
def delete(self, repo_name):

Takie rozwiązanie poprawia czytelność kodu, ale jeżeli nie umieścimy żadnego dekoratora przed funkcją - aplikacja będzie myślała, że dany użytkownik ma pełne uprawnienia do danej funkcjonalności.

W tym wypadku programiści zapomnieli o dekoratorze w miejscu, które było odpowiedzialne za ustawianie odpowiednich uprawnień dostępu do repozytorium.

Wystarczyło więc znać nazwę cudzego repozytorium i ustawić siebie jako administratora.

Drugi błąd znajdował się w interfejsie API.

Aplikacja pozwalała na tworzenie repozytoriów na podstawie innych repozytoriów.

Standardowe użycie to podanie adresu http interesującego nas repozytorium - na przykład na Githubie.

Ale git pozwala również na klonowanie lokalnych repozytoriów - przy użyciu normalnej ścieżki do katalogu.

Jeżeli znaliśmy nazwę używaną przez innego użytkownika - mogliśmy przewidzieć w jakim katalogu Kallithea trzyma wszystkie potrzebne dane.

Następnie wystarczyło podać tą ścieżkę podczas tworzenia nowego repozytorium i kod do którego nie posiadaliśmy dostępu, nagle okazuje się być dostępny.

Więcej informacji na temat tych błędów na moim blogu.

Jeżeli chcesz być wołany dodaj się do Mirkolisty.
Masz pytanie na temat bezpieczeństwa? Zadaj je na grupie od 0 do pentestera na Facebooku.

#security #bezpieczenstwo #programowanie #programista15k #informatyka #it #nauka #technologia #ciekawostki #gruparatowaniapoziomu

Przejdź do wpisu

Dodany: 2018-12-11 13:41:46 | Ostatnio wołany: 2018-12-11 13:42:26


Co to jest atak na pomoc techniczną i jak nie dać się nabrać.
Czy kradzież danych z mieszkania przy pomocy żarówek jest możliwa?
Jak wykorzystać Google Translate jako serwer proxy?
Atak gorszy niż spam - email flooding.
Znajdowanie drukarek podpiętych do Internetu przy pomocy serwisu Shodan.

#podcast Szurkogadanie - zestawienie ciekawych informacji o #bezpieczenstwo
Dostępny również na Spotify oraz Google i Apple Podcasts.

Jeżeli chcesz być wołany dodaj się do Mirkolisty.
Masz pytanie na temat #security? Zadaj je na grupie od 0 do pentestera na Facebooku.

#od0dopentestera #programowanie #swiat #informatyka #it #nauka #technologia #ciekawostki #gruparatowaniapoziomu

Przejdź do wpisu

Dodany: 2018-12-07 07:28:43 | Ostatnio wołany: 2018-12-07 07:29:51


postMessage pozwala na wymienianie danych pomiędzy różnymi domenami przy użyciu #javascript
Dzisiaj w #od0dopentestera o tym, jak sprawdzić źródło wiadomości oraz dlaczego nie używać wyrażeń regularnych do tego celu.

window.addEventListener("message", function(message) {
alert(message.data);
}

Jeżeli na stronie umieścimy taki kawałek kodu, dowolna inna witryna będzie mogła przesłać do naszej domeny wiadomość i wyświetlić ją użytkownikowi:

document.getElementById("f").contentWindow.postMessage("Wiadomość", "*");

Jest to możliwe ponieważ nie sprawdzamy skąd pochodzi taka wiadomość.
Powinniśmy pozwalać na wykonanie akcji tylko zaufanym stroną.
W tym celu przeglądarka do każdej wiadomości dodaje pole origin, w którym zawarta jest nazwa domeny próbującej przesłać wiadomość:

if (message.origin == "http://naszadomena.local")

Ale ciągi znaków można sprawdzać na różne sposoby, na przykład przy użyciu wyrażeń regularnych:

if (/^http\/\/www.domena.local$/.test(message.origin))

Łatwo wtedy zapomnieć, że kropka - oznacza dowolny jeden znak.
Aby sprawdzać czy jest tam rzeczywiście kropka - musielibyśmy poprzedzić ją \.
W tym przypadku dane można również wysłać z wwwXdomena.local czy też wwwYdomena.local.

if (message.origin.indexOf("www.domena2.local") > 0)

Funkcja indexOf zwraca offset pod którym odnalazła poszukiwany ciąg.
Sprawdza zatem czy podany tekst znajduje się gdziekolwiek.
Aby obejść ten filtr możemy stworzyć subdomenę: www.domena2.local.innadomena.local

Jeżeli chcesz być wołany dodaj się do Mirkolisty.
Masz pytanie na temat bezpieczeństwa? Zadaj je na grupie od 0 do pentestera na Facebooku.

Ps. Zapraszam do obserwowania tagu autorskiego #od0dopentestera

#security #bezpieczenstwo #programowanie #programista15k #informatyka #it #nauka #technologia #ciekawostki #gruparatowaniapoziomu

Przejdź do wpisu
Założona przez:

KacperSzurek

Osób na liście: 47
Wołań: 22
Lista tagu "od 0 do pentestera" gdzie publikuje informacje na temat szeroko pojętego bezpieczeństwa komputerowego.

Kategoria: Nauka i newsy

Ostatnie wydarzenia (zobacz wszystkie)


2019-01-18 16:36:33
@luznoluzno dołączył do listy


2019-01-18 16:34:12
@brudny dołączył do listy


2019-01-18 16:13:35
@Ravciu dołączył do listy


2019-01-18 13:24:25
@thecar dołączył do listy


2019-01-18 11:31:25
@adrpan dołączył do listy


2019-01-18 11:21:59
@porbono dołączył do listy


2019-01-18 10:34:33
@madox dołączył do listy


2019-01-18 10:20:22
@bartex121 dołączył do listy


2019-01-18 09:24:41
@umiarkowany_ekstremista dołączył do listy


2019-01-18 05:45:43
@Dwarg dołączył do listy