Drobné chyby, které vám mohou zlomit vaz

Vladimír Smitka
Vladimír SmitkaCo-founder - Lynt services at Lynt services s.r.o.
https://lynt.cz @smitka
Drobné chyby, které vám mohou
zlomit vaz
Vláďa Smitka
vladimir.smitka@lynt.cz
@smitka
Lynt services s.r.o.
https://lynt.cz @smitka
Další přednáška o SQLi/XSS/HTTPS/heslech
12. 6. 2018 2
"Bezpečnost vyžaduje odlišné myšlení"
https://lynt.cz @smitka12. 6. 2018 3
https://lynt.cz @smitka
Klasifikace útočníka
12. 6. 2018 4
https://lynt.cz @smitka
FB
12. 6. 2018 5
https://lynt.cz @smitka
Krádež údajů
12. 6. 2018 6
https://github.com/beefproject/beef/wiki/Module%3A-Pretty-Theft
https://lynt.cz @smitka
"Nedělej živé ukázky, nedělej živé
ukázky, nedělej živé ukázky"
12. 6. 2018 7
https://lynt.cz @smitka
Živá ukázka
12. 6. 2018 8
https://lynt.cz @smitka
Document relationships
• window.opener.location
• <a href="" target="_blank">link</a>
• <a href="" target="_blank" rel="noopener noreferrer">link</a>
• https://caniuse.com/#search=noopener
• https://caniuse.com/#search=noreferrer
• Referrer-policy HTTP header
• https://w3c.github.io/webappsec-referrer-policy/
12. 6. 2018 9
https://lynt.cz @smitka
Puny code domain
• https://www.аррӏе.com/
• https://www.xn--80ak6aa92e.com/
• http://homoglyphs.net/
12. 6. 2018 10
https://lynt.cz @smitka
Když developer a vývojář nejsou na stejné lodi
12. 6. 2018 11
https://lynt.cz @smitka
FPD
• /var/www/clients/client3/web8 - ISPconfig
• /var/www/vhosts/web.xy/httpdocs/ - Plesk
• /home/webxy/public_html/ - cPanel
• /data/web/virtuals/180581/virtual/www/
12. 6. 2018 12
FTP uživatel
https://lynt.cz @smitka
Vyvolání chyby
12. 6. 2018 13
• Prázdná session
• Dlouhá session
• Speciální znak
• Přímé volání souboru
• pole[]
Stacktrace
Apache APPProxy
search.php?q=abc
search.php?q[]=abc
Požadavek z
lokální sítě
https://lynt.cz @smitka
Výpis souborů
12. 6. 2018 14
5% slovenských WP webů
https://lynt.cz/blog/wordpress-v-sk-pruzkum
vim: .<file>.swp
https://lynt.cz @smitka
Editor
12. 6. 2018 15
CKEDITOR.replace("frm-loginForm-username")
Hacker friendly robots.txt:
Disallow: /cesta/k/adminu ;-)
Samozřejmě to platí i pro TinyMCE a další.
https://lynt.cz @smitka
.git
12. 6. 2018 16
Několik tisícovek českých webů má přístupnou složku .git!
I bez výpisu adresáře lze .git stáhnout - https://github.com/internetwache/GitTools
https://lynt.cz @smitka
"Nejisté chování vede k jistým chybám."
12. 6. 2018 17
https://lynt.cz @smitka
Neplánovaný uživatelský vstup
• Můj user-agent:
Mozilla/5.0 (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/67.0.3396.62 Safari/537.36 <img
src=https://tools.lynt.cz/ua/>
12. 6. 2018 18
https://lynt.cz @smitka
XXE - XML External Entity
from lxml import etree
x = etree.parse('test.xml')
print(etree.tostring(x))
12. 6. 2018 19
* hint: defusedxml
https://www.owasp.org/index.php/XML_External_Entity_(XXE)_Prevention_Cheat_Sheet
<!DOCTYPE root [<!ENTITY e SYSTEM "/etc/passwd">]>
<root>&e;</root>
<!DOCTYPE root [<!ENTITY e "Ahoj">]>
<root>&e;</root>
<root>Ahoj</root>
https://lynt.cz @smitka
XXE - DoS
12. 6. 2018 20
<!DOCTYPE lolz [
<!ENTITY lol "lol">
<!ENTITY lol1 "&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;">
<!ENTITY lol2 "&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;">
<!ENTITY lol3 "&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;">
<!ENTITY lol4 "&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;">
<!ENTITY lol5 "&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;">
<!ENTITY lol6 "&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;">
<!ENTITY lol7 "&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;">
<!ENTITY lol8 "&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;">
<!ENTITY lol9 "&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;">
]>
<lolz>&lol9;</lolz>
Billion laughs attack: https://en.wikipedia.org/wiki/Billion_laughs_attack
Quadratic blowup - slabší varianta bez zanořování
https://lynt.cz @smitka
XXE příklady
Google:
https://blog.detectify.com/2014/04/11/how-
we-got-read-access-on-googles-production-
servers/
Facebook:
https://www.ubercomp.com/posts/2014-01-
16_facebook_remote_code_execution
12. 6. 2018 21
https://lynt.cz @smitka
HPP
• HTTP Parameter Pollution
• /?id=1&id=2
12. 6. 2018 22
technologie Výsledek (* může se lišit dle konkrétní knihovny)
PHP 2
Ruby 2
Perl 1
JSP 1
Python (Django, Flask) 1
Node [1,2]
ASP.NET 1,2
https://lynt.cz @smitka
HPP
POST /index.php?id=1&id=2 HTTP/1.1
Cookie: id=3;id=4
id=5&id=6
12. 6. 2018 23
Účely HPP:
Přepsat jinde definované parametry
Změnit chování aplikace
Vyvolat chybu
Obejít kontroly/WAF
https://lynt.cz @smitka
HPP 26/3d selfreference
• page.php?action=edit&page=<PAGE_ID>
• page_id = 1%26action%3ddelete
• page.php?action=edit&page=1&action=delete
12. 6. 2018 24
https://lynt.cz @smitka
HPP příklady
12. 6. 2018 25
Twitter:
https://twitter.com/intent/like?tweet_id=123456789&screen_name=Attacker
https://ericrafaloff.com/parameter-tampering-attack-on-twitter-web-intents/
WordPress 4.7.0 + 4.7.1:
https://lynt.cz/blog/masivni-unorova-infekce-wordpress-webu-2017
Yahoo Classic Mail:
http://it.mc257.mail.yahoo.com/mc/showFolder?
fid=Inbox&order=down&tt=245&pSize=25&startMid=0
%2526cmd=fmgt.emptytrash%26DEL=1%26DelFID=Inbox%26cmd=fmgt.delete
Blogger.com:
https://upshell.wordpress.com/?p=195
https://lynt.cz @smitka
CSRF
12. 6. 2018 26
<body>
Admine,
<br>
díky za tvojí skvělou práci!</div>
<br>
<img src="cid:emab59100f-75bf-4822-b264-
f36747e24083">
<img width="0" height="0"
src="https://admininistrace.xy/change_pass
word.php?password=hahahaha">
</body>
https://lynt.cz @smitka
Pár otázek
• Mají mé session cookies HTTP Only + Secure?
• Používám target="_blank" s noopener, noreferrer?
• Nezobrazuji chybové hlášky a stacktrace?
• Zakazuji výpis složek (autoindex), a přístup ke všemu, co
začíná tečkou (především .git)?
• Ověřuji uživatele u filemanageru v HTML editoru?
• Jak se zachová aplikace když se jí pošle více stejných
parametrů?
• Jak nakládá XML parser s entitami?
• Mám všude CSRF tokeny?
• Kolik používám bezpečnostních hlaviček?
https://securityheaders.com/
12. 6. 2018 27
https://lynt.cz @smitka12. 6. 2018 28
A to je vše, přátelé.
Reklamní vsuvka:
Děláte s PPC? Sledujte https://twitter.com/PPCrobot
Děláte v Pythonu? PPC Robot hledá vývojáře ;-)
1 of 28

Recommended

Hesla a vícefaktorová autentizace ve WP by
Hesla a vícefaktorová autentizace ve WPHesla a vícefaktorová autentizace ve WP
Hesla a vícefaktorová autentizace ve WPVladimír Smitka
948 views35 slides
WordCamp Bratislava 2019 - Cache! by
WordCamp Bratislava 2019 - Cache!WordCamp Bratislava 2019 - Cache!
WordCamp Bratislava 2019 - Cache!Vladimír Smitka
1.6K views35 slides
Google Tag Manager a analytika ve WordPress by
Google Tag Manager a analytika ve WordPressGoogle Tag Manager a analytika ve WordPress
Google Tag Manager a analytika ve WordPressVladimír Smitka
700 views32 slides
WP Weekend 2018 by
WP Weekend 2018WP Weekend 2018
WP Weekend 2018Vladimír Smitka
308 views23 slides
Webmeetup #3 by
Webmeetup #3Webmeetup #3
Webmeetup #3Vladimír Smitka
461 views29 slides
Najčastejšie problémy WordPress webov by
Najčastejšie problémy WordPress webovNajčastejšie problémy WordPress webov
Najčastejšie problémy WordPress webovVladimír Smitka
2.6K views50 slides

More Related Content

What's hot

Bezpečnost WordPress pro začátečníky by
Bezpečnost WordPress pro začátečníkyBezpečnost WordPress pro začátečníky
Bezpečnost WordPress pro začátečníkyVladimír Smitka
6.2K views51 slides
WordPress šablony a rychlost načítání (WordCamp Praha 2017) by
WordPress šablony a  rychlost načítání (WordCamp Praha 2017)WordPress šablony a  rychlost načítání (WordCamp Praha 2017)
WordPress šablony a rychlost načítání (WordCamp Praha 2017)Martin Michálek
1.8K views38 slides
Jak si (ne)nechat hacknout Wordpress stránky by
Jak si (ne)nechat hacknout Wordpress stránkyJak si (ne)nechat hacknout Wordpress stránky
Jak si (ne)nechat hacknout Wordpress stránkyVladimír Smitka
10.2K views40 slides
WordCamp Praha 2016 - Bezpečnost WordPress by
WordCamp Praha 2016 - Bezpečnost WordPressWordCamp Praha 2016 - Bezpečnost WordPress
WordCamp Praha 2016 - Bezpečnost WordPressVladimír Smitka
5.7K views60 slides
WordPress - základy bezpečnosti by
WordPress - základy bezpečnostiWordPress - základy bezpečnosti
WordPress - základy bezpečnostiVladimír Smitka
1.4K views45 slides
WordCamp Brno 2017 - rychlý a bezpečný web by
WordCamp Brno 2017  - rychlý a bezpečný webWordCamp Brno 2017  - rychlý a bezpečný web
WordCamp Brno 2017 - rychlý a bezpečný webVladimír Smitka
1.6K views27 slides

What's hot(11)

Bezpečnost WordPress pro začátečníky by Vladimír Smitka
Bezpečnost WordPress pro začátečníkyBezpečnost WordPress pro začátečníky
Bezpečnost WordPress pro začátečníky
Vladimír Smitka6.2K views
WordPress šablony a rychlost načítání (WordCamp Praha 2017) by Martin Michálek
WordPress šablony a  rychlost načítání (WordCamp Praha 2017)WordPress šablony a  rychlost načítání (WordCamp Praha 2017)
WordPress šablony a rychlost načítání (WordCamp Praha 2017)
Martin Michálek1.8K views
Jak si (ne)nechat hacknout Wordpress stránky by Vladimír Smitka
Jak si (ne)nechat hacknout Wordpress stránkyJak si (ne)nechat hacknout Wordpress stránky
Jak si (ne)nechat hacknout Wordpress stránky
Vladimír Smitka10.2K views
WordCamp Praha 2016 - Bezpečnost WordPress by Vladimír Smitka
WordCamp Praha 2016 - Bezpečnost WordPressWordCamp Praha 2016 - Bezpečnost WordPress
WordCamp Praha 2016 - Bezpečnost WordPress
Vladimír Smitka5.7K views
WordPress - základy bezpečnosti by Vladimír Smitka
WordPress - základy bezpečnostiWordPress - základy bezpečnosti
WordPress - základy bezpečnosti
Vladimír Smitka1.4K views
WordCamp Brno 2017 - rychlý a bezpečný web by Vladimír Smitka
WordCamp Brno 2017  - rychlý a bezpečný webWordCamp Brno 2017  - rychlý a bezpečný web
WordCamp Brno 2017 - rychlý a bezpečný web
Vladimír Smitka1.6K views
Wordpress_DOD by Doubry99
Wordpress_DODWordpress_DOD
Wordpress_DOD
Doubry992K views
Základní pluginy pro WordPress by Radek Kucera
Základní pluginy pro WordPressZákladní pluginy pro WordPress
Základní pluginy pro WordPress
Radek Kucera682 views
WordPress: Základy - bezpečnost 3x3 by Vladimír Smitka
WordPress: Základy - bezpečnost 3x3WordPress: Základy - bezpečnost 3x3
WordPress: Základy - bezpečnost 3x3
Vladimír Smitka1.7K views
Co ukázal globální scan přístupných .git repozitářů? by Vladimír Smitka
Co ukázal globální scan přístupných .git repozitářů?Co ukázal globální scan přístupných .git repozitářů?
Co ukázal globální scan přístupných .git repozitářů?
Vladimír Smitka602 views

More from Vladimír Smitka

Http/2 vs Image Sprites by
Http/2 vs Image SpritesHttp/2 vs Image Sprites
Http/2 vs Image SpritesVladimír Smitka
1.4K views10 slides
Ansible by
AnsibleAnsible
AnsibleVladimír Smitka
1.4K views45 slides
Wordfence 2016 by
Wordfence 2016Wordfence 2016
Wordfence 2016Vladimír Smitka
1.6K views18 slides
WordPress Security: Defend yourself against digital invaders by
WordPress Security:Defend yourself against digital invadersWordPress Security:Defend yourself against digital invaders
WordPress Security: Defend yourself against digital invadersVladimír Smitka
2.8K views62 slides
Instalace WordPress by
Instalace WordPressInstalace WordPress
Instalace WordPressVladimír Smitka
1.8K views23 slides
WP výkon a jeho profilování by
WP výkon a jeho profilováníWP výkon a jeho profilování
WP výkon a jeho profilováníVladimír Smitka
1.1K views26 slides

More from Vladimír Smitka(14)

WordPress Security: Defend yourself against digital invaders by Vladimír Smitka
WordPress Security:Defend yourself against digital invadersWordPress Security:Defend yourself against digital invaders
WordPress Security: Defend yourself against digital invaders
Vladimír Smitka2.8K views
WordPress security for everyone by Vladimír Smitka
WordPress security for everyoneWordPress security for everyone
WordPress security for everyone
Vladimír Smitka37.3K views
Bezpečnost WP, tipy pro každého - wordCamp Praha 2015 by Vladimír Smitka
Bezpečnost WP, tipy pro každého - wordCamp Praha 2015Bezpečnost WP, tipy pro každého - wordCamp Praha 2015
Bezpečnost WP, tipy pro každého - wordCamp Praha 2015
Vladimír Smitka8.8K views
Wordcamp Praha 2015 - další útržky z prezentace by Vladimír Smitka
Wordcamp Praha 2015 - další útržky z prezentaceWordcamp Praha 2015 - další útržky z prezentace
Wordcamp Praha 2015 - další útržky z prezentace
Vladimír Smitka945 views
Bezpečnost Wordpressu - 4. WP konference by Vladimír Smitka
Bezpečnost Wordpressu - 4. WP konferenceBezpečnost Wordpressu - 4. WP konference
Bezpečnost Wordpressu - 4. WP konference
Vladimír Smitka4.7K views
Sítě pro malé a střední podniky 2014 by Vladimír Smitka
Sítě pro malé a střední podniky 2014Sítě pro malé a střední podniky 2014
Sítě pro malé a střední podniky 2014
Vladimír Smitka1.5K views

Drobné chyby, které vám mohou zlomit vaz

Editor's Notes

  1. 1kb – 3GB ram
  2. Regexp => 1., plnění pole => poslední