SlideShare a Scribd company logo
1 of 28
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 ;-)

More Related Content

What's hot

What's hot (11)

Bezpečnost WordPress pro začátečníky
Bezpečnost WordPress pro začátečníkyBezpečnost WordPress pro začátečníky
Bezpečnost WordPress pro začátečníky
 
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)
WordPress šablony a rychlost načítání (WordCamp Praha 2017)
 
Jak si (ne)nechat hacknout Wordpress stránky
Jak si (ne)nechat hacknout Wordpress stránkyJak si (ne)nechat hacknout Wordpress stránky
Jak si (ne)nechat hacknout Wordpress stránky
 
WordCamp Praha 2016 - Bezpečnost WordPress
WordCamp Praha 2016 - Bezpečnost WordPressWordCamp Praha 2016 - Bezpečnost WordPress
WordCamp Praha 2016 - Bezpečnost WordPress
 
WordPress - základy bezpečnosti
WordPress - základy bezpečnostiWordPress - základy bezpečnosti
WordPress - základy bezpečnosti
 
WordCamp Brno 2017 - rychlý a bezpečný web
WordCamp Brno 2017  - rychlý a bezpečný webWordCamp Brno 2017  - rychlý a bezpečný web
WordCamp Brno 2017 - rychlý a bezpečný web
 
Výkon WordPress
Výkon WordPressVýkon WordPress
Výkon WordPress
 
Wordpress_DOD
Wordpress_DODWordpress_DOD
Wordpress_DOD
 
Základní pluginy pro WordPress
Základní pluginy pro WordPressZákladní pluginy pro WordPress
Základní pluginy pro WordPress
 
WordPress: Základy - bezpečnost 3x3
WordPress: Základy - bezpečnost 3x3WordPress: Základy - bezpečnost 3x3
WordPress: Základy - bezpečnost 3x3
 
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ářů?
Co ukázal globální scan přístupných .git repozitářů?
 

More from Vladimír Smitka

More from Vladimír Smitka (14)

Http/2 vs Image Sprites
Http/2 vs Image SpritesHttp/2 vs Image Sprites
Http/2 vs Image Sprites
 
Ansible
AnsibleAnsible
Ansible
 
Wordfence 2016
Wordfence 2016Wordfence 2016
Wordfence 2016
 
WordPress Security: Defend yourself against digital invaders
WordPress Security:Defend yourself against digital invadersWordPress Security:Defend yourself against digital invaders
WordPress Security: Defend yourself against digital invaders
 
Instalace WordPress
Instalace WordPressInstalace WordPress
Instalace WordPress
 
WP výkon a jeho profilování
WP výkon a jeho profilováníWP výkon a jeho profilování
WP výkon a jeho profilování
 
WordPress performance tuning
WordPress performance tuningWordPress performance tuning
WordPress performance tuning
 
WordPress security for everyone
WordPress security for everyoneWordPress security for everyone
WordPress security for everyone
 
Bezpečnost WP, tipy pro každého - wordCamp Praha 2015
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
 
České weby a Wordpress (Q4/2014)
České weby a Wordpress (Q4/2014)České weby a Wordpress (Q4/2014)
České weby a Wordpress (Q4/2014)
 
Wordcamp Praha 2015 - další útržky z prezentace
Wordcamp Praha 2015 - další útržky z prezentaceWordcamp Praha 2015 - další útržky z prezentace
Wordcamp Praha 2015 - další útržky z prezentace
 
Dijskrův algoritmus
Dijskrův algoritmusDijskrův algoritmus
Dijskrův algoritmus
 
Bezpečnost Wordpressu - 4. WP konference
Bezpečnost Wordpressu - 4. WP konferenceBezpečnost Wordpressu - 4. WP konference
Bezpečnost Wordpressu - 4. WP konference
 
Sítě pro malé a střední podniky 2014
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
 

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

Editor's Notes

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