From e05bb1cc20556450a9899027283f169f94fdad37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?k=C3=A1men=20u=20cesty?= <79706070+kamen-u-cesty@users.noreply.github.com> Date: Sat, 10 Dec 2022 18:07:25 +0100 Subject: [PATCH] =?UTF-8?q?MPC-CT3:=20Testov=C3=A1n=C3=AD=20bezpe=C4=8Dnos?= =?UTF-8?q?ti=20webov=C3=A9=20aplikace?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MPC-CT3/main.tex | 2 +- MPC-CT3/text.tex | 76 ++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 2 +- 3 files changed, 78 insertions(+), 2 deletions(-) diff --git a/MPC-CT3/main.tex b/MPC-CT3/main.tex index ce33c22..dae42bd 100644 --- a/MPC-CT3/main.tex +++ b/MPC-CT3/main.tex @@ -1,7 +1,7 @@ \newcommand{\subject}{MPC-CT3} \newcommand{\subjectname}{Bezpečnost ICT3} % Pokud jste přidali otázku nebo její část, přidejte své jméno sem -\newcommand{\authors}{Surtura, kámen u~cesty, Vikča} +\newcommand{\authors}{Surtura, kámen u~cesty, Vikča, Kompost} % Pokud jste opravili gramatickou, logickou nebo formátovací chybu, přidejte své jméno sem \newcommand{\corrections}{--} diff --git a/MPC-CT3/text.tex b/MPC-CT3/text.tex index 5ce143a..a92d378 100644 --- a/MPC-CT3/text.tex +++ b/MPC-CT3/text.tex @@ -534,5 +534,81 @@ \subsubsection{ASVS metodologie} \clearpage \section{Testování bezpečnosti webové aplikace (vysvětlete zranitelnost Path traversal, co obsahuje testování vstupu pro nahrání souboru).} +Manuální testování je velice zdlouhavé, drahé a nezáživné, ale nezbytné pro~zjištění co nejvíce informací. Využívá znalostí provádějící osoby a hledají se bezpečnostní zranitelnosti. +K~pokrytí běžných nedostatků se používá automatické testování, které nejde tolik do~hloubky. +Ideálně se využívá obou metod, napřed automatizované testování pro~zjištění známých a naskriptovaných nedostatků systému. Poté se využije znalosti testera v~manuálním testováním. + +\subsection{Automatizační nástroje} + +WebInspect, Acunetix, Burp Suite, AppScan, Wapiti, \dots + +Jsou rychlé a levné, avšak nenajdou žádné závažné nedostatky, jen warnings. Vyvolávají falešný pocit bezpečí pokud nic nenaleznou. + +Nejsou schopné nalézt např.: + +\begin{itemize} + \item zero-days zranitelnosti, + \item chyby v~obchodní logice, + \item nedostatečnou autorizaci, + \item chyby, které se projevují na~jíných stránkách, než jsou vstupy, + \item chyby, které lze vyvolat pouze složitým testovacím scénářem. +\end{itemize} + + +\subsection{Path traversal} + +Zranitelnost, která umožňuje útočníkovi pohybovat se v~adresářích souborového systému serveru, na~kterém běží aplikace. + +Pomocí sekvence znaků \texttt{../} se lze dostat až do~kořenového adresáře a přistupovat tak k~souborům na~disku. + +Doporučení pro weby s~WordPressem: + +\begin{itemize} + \item Instalovat pouze nezbytné pluginy, + \item přes nasazením pluginu si jej ověřit na~netu i~osobně, + \item provést revizi kódu, + \item aktualizovat WP, pluginy i~templates, + \item nespoléhat se na~automatické nástroje, + \item nikdy neprovozovat webový server pod~rootem. +\end{itemize} + +Placené alternativy k~WordPressu neznamená, že se jedná o~bezpečnou aplikaci. + +\subsection{Testování vstupu pro nahrání souboru} + +Po~nahrání souboru bychom měli např. pomocí BurpSuite zjistit, jaká je odpověď serveru. Server by neměl v~odpovědi na~požadavek zaslat URL s~cestou, kterou se dá přistoupit k~nahranému souboru. Pokud útočník získá cestu k~souboru může k~němu přistoupit a v~případě skriptu spustit. Bez znalosti cesty by musel manuálně procházet celý souborový systém. + +Kontrolní seznam pro testování uploadu souboru: + +\begin{itemize} + \item XSS v~názvu souboru? + \item Upload serverových skriptů (.asp, .php, .php3, .phtml)? + \item Upload HTML souborů (.htm, .html, .xhtml)? XSS? + \item Upload vektorové grafiky (.svg)? XSS? + \item Je soubor ukládán na~filesystém nebo do~databáze? + \item Je vygenerován nový bezpečný název souboru? + \item Není kontrola založena na~Content-Type? + \item SQL injection v~Content-Type? + \item XSS v~Content-Type? + \item Uložení změněného Content-Type a viewer -- XSS? + \item Upload XML souborů? + \item XML Entity Expansion? + \item XML External Entity? + \item XML RCE via XXE? + \item Je kontrolována přípona pomocí whitelistu? + \item Je kontrolována přípona souborů všetně tečky? + \item Není možné bypass pomocí více přípon (\texttt{.php.foojpg})? + \item Není možné bypass pomocí sekvence (\texttt{.php/././././})? + \item Není možné bypass pomocí lomítka (\texttt{.php/.jpg})? + \item Není možné bypass pomocí středníku (\texttt{.php;.jpg})? + \item Není možné bypass pomocí otazníku (\texttt{.php?.jpg})? + \item Není možné bypass pomocí NewLine (\texttt{.php\%0D\%0A.jpg})? + \item Není možné bypass pomocí lomítka (\texttt{.php/.jpg})? + \item Nedojde k~oříznutí velice dlouhého názvu souboru? + \item Path Traversal? Upload do~jiných adresářů(\texttt{../file.jpg})? + \item Není možné nahrát soubor do~ADS pomocí dvojtečky? + \item Není možné zneužíit Unitrix (psaní pozpátku)? + \item Není možné na~server uploadovat malware (EICAR file)? +\end{itemize} diff --git a/README.md b/README.md index 43794c6..c08f3f1 100644 --- a/README.md +++ b/README.md @@ -67,7 +67,7 @@ Vybírají se právě dva předměty. - [ ] Forenzní analýza (hlavní cíle, základní principy, vysvětlete časové značky a časovou osu událostí). - [x] Analýza škodlivého kódu (základní dělení analýz, cíle a metody statické a dynamické analýzy). - [x] Penetrační testování (rozdíly v penetračním testování realizovaným metodou Ad-hoc a pomocí metodologie, hlavní cíle ASVS metodologie, bezpečnostní úrovně). -- [ ] Testování bezpečnosti webové aplikace (vysvětlete zranitelnost Path traversal, co obsahuje testování vstupu pro nahrání souboru). +- [x] Testování bezpečnosti webové aplikace (vysvětlete zranitelnost Path traversal, co obsahuje testování vstupu pro nahrání souboru). ### MPC-PDA