SlideShare une entreprise Scribd logo
1  sur  63
Télécharger pour lire hors ligne
Security
Ruins everything on the Internet since 1920*
About me
● Веселин Николов
● Automattic
● WP от 1.2
● PHP и MySQL от 3.0
About me
● Веселин Николов
● Automattic
● WP от 1.2
● PHP и MySQL от 3.0
● Опит с IRC*
Acid Burn
● Контролира
светофарите
● Притежава 686
90-те
● mIRC, @
● MSIE хакове
● DoS, ботнети
● Проксита,
шелове, IRC
сървъри
● Confidentiality
● Integrity
● Availability
Сигурност
● Превенция
● Идентификация
● Реакция
(^^ цитирам Тони Перез)
Сигурност
● Собствения ни хардуер – компютри, рутери
● Интернет връзката
● Сървърите, които ползваме
● Пароли за достъп, ключове
● Плъгини и теми
● Нашият код
● Meatware
Компоненти
● Собствения ни хардуер – компютри, рутери
● Интернет връзката
● Сървърите, които ползваме
● Пароли за достъп, ключове
● Плъгини и теми
● Нашият код
● Meatware
Компоненти
● Thunderstrike, USB, вируси и трояни
● Software Update, Antivirus
Хардуер
● MITM, хакнати рутери, Wi-Fi,
Poodle, http
● VPN, Proxy, Software Update
Интернет
● Legacy software
● Managed hosting, админи
Сървъри
Пароли...
Пароли...
Your password is
OK, as long as
it's 6 caracters
and ends with
123.
I recommend
qwe123 :D
● 30%+ от сайтовете съхраняват
паролите в явен вид*
http://plaintextoffenders.com/about/
● Phishing, Social Engineering, Brute
Force, MITM, keyloggers, human
errors, бази данни с пароли
Пароли...
Някой някъде има списък с пароли,
които сте ползвали.
Пароли...
'my secret password' ->
● phpass:
● $P$BXT7cDEtQXkAVarv7mh8WZux1euzwI/
md5:
● a7303f3eee5f3ff1942bfbb1797ea0af
Хешове
● Използвайте силни алгоритми за
хеширане на пароли (phpass е ок
засега)
● Много внимавайте като логвате или
дебъгвате $_POST, в който може да
се съдържат пароли.
Превенция
Password Manager
За съжаление не всички потребители ще опазят паролите
си.
Права на достъп
Права на достъп
2FA
● https://wordpress.org/plugins/two-fact
● 2FA на всичките ви пощи, социални
мрежи и тн.
Плъгини и теми
● Официалните хранилища
● Не ползвайте безплатни версии на
платени теми и плъгини
Code Review
● XSS
● CSRF
● Remote code execution
● SQL injection
● Privilege escalation
● Open redirects
Code Review
● XSS
● CSRF
● Remote code execution
● SQL injection
● Privilege escalation
● Open redirects
XSS
● Има известни филтри в модерните
браузъри, тества се по-трудно
XSS
mysite.com/?ref=">HI!, ASL PLS
XSS
XSS
● Late escaping:
● esc_url, esc_attr, esc_url,
esc_textarea, esc_url_raw, ...
За какво да внимаваме
● Непочистен output
● Погрешна употреба на функции
● Неправилна валидация
● Правописни грешки
XSS
Погрешна употреба на функции
<script>
var a = '<?php echo strip_tags( $a ) ?>';
XSS
Погрешна употреба на функции
<script>
var a = '<?php echo strip_tags( $a ) ?>';
$a = “'; alert(7) //”;
XSS
Погрешна употреба на функции
<?php echo json_encode( $a ); ?>
XSS
Погрешна употреба на функции
<?php echo json_encode( $a ); ?>
http://h43z.blogspot.com/2012/06/phps-jsonencode-and-xss.html
XSS
Употреба на esc_* без валидация:
<script src="<?php echo esc_url( $js ) ?>">
където
$js = 'http://evil-project.com/js';
XSS
Неправилна валидация
1. Проверка вместо cast
if ( intval( $myfield ) )
echo $myfield;
// $myfield = '1 <script...';
XSS
Неправилна валидация на ID-та
2. Липса на ^ и $ в regexp
if ( ! preg_match( '/[a-z0-9_-]/i', $myfield ) ) {
return 'You are trying to hack me!';
}
// $myfield = '<script ...'
XSS
Неправилна валидация на адреси
2. Липса на ^ и $ в RegExp
if ( preg_match ( '!https?://(www.)*good-
host.com/js/!i', $myjs)
http://dzver.com/bad.js?http://good-host.com/js/
if ( preg_match( '!^http://good-host.com!',
$myjs )
http://good-host.com.dzver.com/
XSS
Неправилна валидация на адреси
3. Точката в RegExp е wildcard.
if ( preg_match ( '!^https?://(www.)*good-host.com/js/!i',
$myjs) ...
// $myjs = http://wwwwgoodhost.com/js
XSS
Неправилна валидация на адреси
4. Позволен / в хост-а
if ( ! preg_match( '!^https?://[^.]+.whatever.com/.+$!i',
$url ) )
// $myjs = 'http://3254656436/or.whatever.com/evil.js'
// $myjs = '<script.../.whatever.com/'
Open Redirect
Всичко, което казахме за валидация
на адреси
wp_redirect();
wp_safe_redirect();
XSS
Правописни грешки:
echo esc_html( printf( __( "My name is
%s", $name ) ) );
CSRF
Позволяване на чужд сайт да имитира
дейност от името на потребителя ни
чрез последователни request-и
Solution:
nonces
CSRF
Позволяване на чужд сайт да имитира
дейност от името на потребителя ни
чрез последователни request-и
Solution:
nonces
http://codex.wordpress.org/Function_Reference/wp_create_nonce
Code Review
● XSS
● CSRF
● Remote code execution
● SQL injection
● Privilege escalation
● Open redirects
Remote Code Execution
Някои скорошни много лоши бъгове в
плъгини, води до пълна загуба на
контрол
Remote Code Execution
eval()
create_function()
assert()
`` (backticks)
system()
Извор на проблеми
extract()
parse_str()
Remote Code Execution
preg_match( '/.../e', $_GET )
/e позволява eval върху match
RFI, LFI
include( $_GET['action'] . '.php' );
XXE
<?php
$xml = simplexml_load_file( $uploaded_file );
?>
<h1><?php echo esc_html( $xml->title );
?></h1>
XXE
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE something
[<!ENTITY awesome SYSTEM
"file:///home/www/public_html/db-config.php"
>]
>
<something>
<title>&awesome;</title>
</something>
● https://www.owasp.org/index.php/XML_External_Entity_%28XXE%29_Processing
XXE
libxml_disable_entity_loader(true)
Code Review
● XSS
● CSRF
● Remote code execution
● SQL injection
● Privilege escalation
● Open redirects
$wpdb->prepare
Всяка заявка, която не използва
prepare е потенциален таргет.
$wpdb->query( $wpdb-
>prepare( "DELETE FROM wp_users
WHERE user_id = %d", $id ) );
Code Review
● XSS
● CSRF
● Remote code execution
● SQL injection
● Privilege escalation
● Open redirects
Разни
● current_user_can – всеки път,
когато се налага
● switch_to_blog – в Multisite с
повишено внимание.
Възможни защити
● Ограничаване на папки за писане до
uploads
● Инсталиране на WordPress със SVN
● Диагонален преглед на изтеглените
теми и плъгини за curly code:
eval(base64_decode("09B2459...
Възможни защити
● define('DISALLOW_FILE_EDIT', true);
● Употреба на user/db само за този сайт
● http://codex.wordpress.org/Hardening_WordPress
Плъгини, които забелязват
● VaultPress
● Sucuri
● ?
Имате нужда от между 0 и 1
Response
● Трябва да имате backup винаги
● Трябва да имате логове, за да
разберете какво се е случило
Упс.
● http://codex.wordpress.org/FAQ_My_site_was_hacked
Stay calm and use version control.
Това беше
Питайте

Contenu connexe

En vedette

Shn Overview Updated 2009 06 P21 23
Shn Overview   Updated 2009 06 P21 23Shn Overview   Updated 2009 06 P21 23
Shn Overview Updated 2009 06 P21 23joaovox
 
Shn, permaculture pilot, 2008 april, 21 30
Shn, permaculture pilot, 2008 april, 21 30Shn, permaculture pilot, 2008 april, 21 30
Shn, permaculture pilot, 2008 april, 21 30joaovox
 
Power point training the power of visuals
Power point training the power of visualsPower point training the power of visuals
Power point training the power of visualsLinda Mkhize-Manashe
 
Ddd part 2 modelling qiscus
Ddd part 2   modelling qiscusDdd part 2   modelling qiscus
Ddd part 2 modelling qiscusHiraq Citra M
 
Shn Overview Updated 2009 06 P31 36
Shn Overview   Updated 2009 06 P31 36Shn Overview   Updated 2009 06 P31 36
Shn Overview Updated 2009 06 P31 36joaovox
 
India Ip &amp; It Laws News Letter May June 2011
India Ip &amp; It Laws News Letter May June 2011India Ip &amp; It Laws News Letter May June 2011
India Ip &amp; It Laws News Letter May June 2011Vijay Dalmia
 
Shn, permaculture pilot, 2008 april, 1 10
Shn, permaculture pilot, 2008 april, 1 10Shn, permaculture pilot, 2008 april, 1 10
Shn, permaculture pilot, 2008 april, 1 10joaovox
 
Ipr Indian Saga Of Wealth Creation
Ipr Indian Saga Of Wealth CreationIpr Indian Saga Of Wealth Creation
Ipr Indian Saga Of Wealth CreationVijay Dalmia
 
Veselin word camp-romania-2014
Veselin word camp-romania-2014Veselin word camp-romania-2014
Veselin word camp-romania-2014Veselin Nikolov
 
More amazing photoshop tut
More amazing photoshop tutMore amazing photoshop tut
More amazing photoshop tutShdwClaw
 
Shn Overview Updated 2009 06 P11 20
Shn Overview   Updated 2009 06 P11 20Shn Overview   Updated 2009 06 P11 20
Shn Overview Updated 2009 06 P11 20joaovox
 
Fine Art And Editorial Photography By Jim Crotty
Fine Art And Editorial Photography By Jim CrottyFine Art And Editorial Photography By Jim Crotty
Fine Art And Editorial Photography By Jim CrottyPicture Ohio, LLC
 
Git WorkFlow & Best Practice
Git WorkFlow & Best PracticeGit WorkFlow & Best Practice
Git WorkFlow & Best PracticeHiraq Citra M
 
ThesisXSiena: The Content-Based Publish/Subscribe System
ThesisXSiena: The Content-Based Publish/Subscribe SystemThesisXSiena: The Content-Based Publish/Subscribe System
ThesisXSiena: The Content-Based Publish/Subscribe SystemZbigniew Jerzak
 
Lessons from my work on WordPress.com
Lessons from my work on WordPress.comLessons from my work on WordPress.com
Lessons from my work on WordPress.comVeselin Nikolov
 
Grey Visual Design Web Site Mini-Portfolio
Grey Visual Design Web Site Mini-PortfolioGrey Visual Design Web Site Mini-Portfolio
Grey Visual Design Web Site Mini-PortfolioGrey Visual
 

En vedette (20)

Shn Overview Updated 2009 06 P21 23
Shn Overview   Updated 2009 06 P21 23Shn Overview   Updated 2009 06 P21 23
Shn Overview Updated 2009 06 P21 23
 
Shn, permaculture pilot, 2008 april, 21 30
Shn, permaculture pilot, 2008 april, 21 30Shn, permaculture pilot, 2008 april, 21 30
Shn, permaculture pilot, 2008 april, 21 30
 
Power point training the power of visuals
Power point training the power of visualsPower point training the power of visuals
Power point training the power of visuals
 
Ddd part 2 modelling qiscus
Ddd part 2   modelling qiscusDdd part 2   modelling qiscus
Ddd part 2 modelling qiscus
 
Milieu
MilieuMilieu
Milieu
 
Shn Overview Updated 2009 06 P31 36
Shn Overview   Updated 2009 06 P31 36Shn Overview   Updated 2009 06 P31 36
Shn Overview Updated 2009 06 P31 36
 
HRPS DC Deck
HRPS DC DeckHRPS DC Deck
HRPS DC Deck
 
Gr8 6 3 Str
Gr8 6 3 StrGr8 6 3 Str
Gr8 6 3 Str
 
India Ip &amp; It Laws News Letter May June 2011
India Ip &amp; It Laws News Letter May June 2011India Ip &amp; It Laws News Letter May June 2011
India Ip &amp; It Laws News Letter May June 2011
 
Peter Keating Dec2008
Peter Keating Dec2008Peter Keating Dec2008
Peter Keating Dec2008
 
Shn, permaculture pilot, 2008 april, 1 10
Shn, permaculture pilot, 2008 april, 1 10Shn, permaculture pilot, 2008 april, 1 10
Shn, permaculture pilot, 2008 april, 1 10
 
Ipr Indian Saga Of Wealth Creation
Ipr Indian Saga Of Wealth CreationIpr Indian Saga Of Wealth Creation
Ipr Indian Saga Of Wealth Creation
 
Veselin word camp-romania-2014
Veselin word camp-romania-2014Veselin word camp-romania-2014
Veselin word camp-romania-2014
 
More amazing photoshop tut
More amazing photoshop tutMore amazing photoshop tut
More amazing photoshop tut
 
Shn Overview Updated 2009 06 P11 20
Shn Overview   Updated 2009 06 P11 20Shn Overview   Updated 2009 06 P11 20
Shn Overview Updated 2009 06 P11 20
 
Fine Art And Editorial Photography By Jim Crotty
Fine Art And Editorial Photography By Jim CrottyFine Art And Editorial Photography By Jim Crotty
Fine Art And Editorial Photography By Jim Crotty
 
Git WorkFlow & Best Practice
Git WorkFlow & Best PracticeGit WorkFlow & Best Practice
Git WorkFlow & Best Practice
 
ThesisXSiena: The Content-Based Publish/Subscribe System
ThesisXSiena: The Content-Based Publish/Subscribe SystemThesisXSiena: The Content-Based Publish/Subscribe System
ThesisXSiena: The Content-Based Publish/Subscribe System
 
Lessons from my work on WordPress.com
Lessons from my work on WordPress.comLessons from my work on WordPress.com
Lessons from my work on WordPress.com
 
Grey Visual Design Web Site Mini-Portfolio
Grey Visual Design Web Site Mini-PortfolioGrey Visual Design Web Site Mini-Portfolio
Grey Visual Design Web Site Mini-Portfolio
 

Similaire à WordPress Security

5494 n nikolov_zashtita_ppt
5494 n nikolov_zashtita_ppt5494 n nikolov_zashtita_ppt
5494 n nikolov_zashtita_pptNikolai Nikolov
 
Web and WS based Embedded Systems
Web and WS based Embedded SystemsWeb and WS based Embedded Systems
Web and WS based Embedded SystemsNikolay Kakanakov
 
Penetration testing for dummies
Penetration testing for dummiesPenetration testing for dummies
Penetration testing for dummiesCode Runners
 
Сигурност и права за достъп в уеб приложения изработени с работната рамка Yii
Сигурност и права за достъп в уеб приложения изработени с работната рамка YiiСигурност и права за достъп в уеб приложения изработени с работната рамка Yii
Сигурност и права за достъп в уеб приложения изработени с работната рамка YiiIlko Kacharov
 
Bezopasnost i za6tita_na_web_prolojenia
Bezopasnost i za6tita_na_web_prolojeniaBezopasnost i za6tita_na_web_prolojenia
Bezopasnost i za6tita_na_web_prolojeniaMartin Kenarov
 
Php security
Php securityPhp security
Php securityNikolai
 
Защита и сигурност на Joomla! сайт - Joomla! Day 2013 Bulgaria
Защита и сигурност на Joomla! сайт - Joomla! Day 2013 BulgariaЗащита и сигурност на Joomla! сайт - Joomla! Day 2013 Bulgaria
Защита и сигурност на Joomla! сайт - Joomla! Day 2013 BulgariaMihail Semerdzhiev
 
SEO курс, лекция 11 - От заявка до рендиране
SEO курс, лекция 11 - От заявка до рендиранеSEO курс, лекция 11 - От заявка до рендиране
SEO курс, лекция 11 - От заявка до рендиранеLily Grozeva
 
Курс по уеб програмиране (2014), занятие №3 - JavaScript (част 1/2)
Курс по уеб програмиране (2014), занятие №3 - JavaScript (част 1/2)Курс по уеб програмиране (2014), занятие №3 - JavaScript (част 1/2)
Курс по уеб програмиране (2014), занятие №3 - JavaScript (част 1/2)DAVID Academy
 
Курс по уеб програмиране (2015), занятие №1 - HTML
Курс по уеб програмиране (2015), занятие №1 - HTMLКурс по уеб програмиране (2015), занятие №1 - HTML
Курс по уеб програмиране (2015), занятие №1 - HTMLDAVID Academy
 
Курс по уеб програмиране (2015), занятие №3 - JavaScript (част 1/2)
Курс по уеб програмиране (2015), занятие №3 - JavaScript (част 1/2)Курс по уеб програмиране (2015), занятие №3 - JavaScript (част 1/2)
Курс по уеб програмиране (2015), занятие №3 - JavaScript (част 1/2)DAVID Academy
 
Криптография за уеб и мобилни разработчици
Криптография за уеб и мобилни разработчициКриптография за уеб и мобилни разработчици
Криптография за уеб и мобилни разработчициVladimir Dzhuvinov
 
безопасност и защита на Web приложения
безопасност и защита на Web  приложениябезопасност и защита на Web  приложения
безопасност и защита на Web приложенияkarizka3
 
JavaScript - езикът с много приложения
JavaScript - езикът с много приложенияJavaScript - езикът с много приложения
JavaScript - езикът с много приложенияStefan Krastev
 

Similaire à WordPress Security (20)

5494 n nikolov_zashtita_ppt
5494 n nikolov_zashtita_ppt5494 n nikolov_zashtita_ppt
5494 n nikolov_zashtita_ppt
 
Webloz2011
Webloz2011Webloz2011
Webloz2011
 
5494 n nikolov_zashtita
5494 n nikolov_zashtita5494 n nikolov_zashtita
5494 n nikolov_zashtita
 
Web and WS based Embedded Systems
Web and WS based Embedded SystemsWeb and WS based Embedded Systems
Web and WS based Embedded Systems
 
Penetration testing for dummies
Penetration testing for dummiesPenetration testing for dummies
Penetration testing for dummies
 
Php sec
Php secPhp sec
Php sec
 
Сигурност и права за достъп в уеб приложения изработени с работната рамка Yii
Сигурност и права за достъп в уеб приложения изработени с работната рамка YiiСигурност и права за достъп в уеб приложения изработени с работната рамка Yii
Сигурност и права за достъп в уеб приложения изработени с работната рамка Yii
 
Bezopasnost i za6tita_na_web_prolojenia
Bezopasnost i za6tita_na_web_prolojeniaBezopasnost i za6tita_na_web_prolojenia
Bezopasnost i za6tita_na_web_prolojenia
 
Php security
Php securityPhp security
Php security
 
Защита и сигурност на Joomla! сайт - Joomla! Day 2013 Bulgaria
Защита и сигурност на Joomla! сайт - Joomla! Day 2013 BulgariaЗащита и сигурност на Joomla! сайт - Joomla! Day 2013 Bulgaria
Защита и сигурност на Joomla! сайт - Joomla! Day 2013 Bulgaria
 
SEO курс, лекция 11 - От заявка до рендиране
SEO курс, лекция 11 - От заявка до рендиранеSEO курс, лекция 11 - От заявка до рендиране
SEO курс, лекция 11 - От заявка до рендиране
 
Wordcamp2011
Wordcamp2011Wordcamp2011
Wordcamp2011
 
Drupal Security
Drupal SecurityDrupal Security
Drupal Security
 
Курс по уеб програмиране (2014), занятие №3 - JavaScript (част 1/2)
Курс по уеб програмиране (2014), занятие №3 - JavaScript (част 1/2)Курс по уеб програмиране (2014), занятие №3 - JavaScript (част 1/2)
Курс по уеб програмиране (2014), занятие №3 - JavaScript (част 1/2)
 
Курс по уеб програмиране (2015), занятие №1 - HTML
Курс по уеб програмиране (2015), занятие №1 - HTMLКурс по уеб програмиране (2015), занятие №1 - HTML
Курс по уеб програмиране (2015), занятие №1 - HTML
 
Курс по уеб програмиране (2015), занятие №3 - JavaScript (част 1/2)
Курс по уеб програмиране (2015), занятие №3 - JavaScript (част 1/2)Курс по уеб програмиране (2015), занятие №3 - JavaScript (част 1/2)
Курс по уеб програмиране (2015), занятие №3 - JavaScript (част 1/2)
 
Криптография за уеб и мобилни разработчици
Криптография за уеб и мобилни разработчициКриптография за уеб и мобилни разработчици
Криптография за уеб и мобилни разработчици
 
безопасност и защита на Web приложения
безопасност и защита на Web  приложениябезопасност и защита на Web  приложения
безопасност и защита на Web приложения
 
PHP Security
PHP SecurityPHP Security
PHP Security
 
JavaScript - езикът с много приложения
JavaScript - езикът с много приложенияJavaScript - езикът с много приложения
JavaScript - езикът с много приложения
 

Plus de Veselin Nikolov

Leadership for Developers, WordCamp Norway
Leadership for Developers, WordCamp NorwayLeadership for Developers, WordCamp Norway
Leadership for Developers, WordCamp NorwayVeselin Nikolov
 
WordPress Security @ Vienna WordPress + Drupal Meetup
WordPress Security @ Vienna WordPress + Drupal MeetupWordPress Security @ Vienna WordPress + Drupal Meetup
WordPress Security @ Vienna WordPress + Drupal MeetupVeselin Nikolov
 
NoSQL бази от данни - възможности и приложение, дипломна защита
NoSQL бази от данни - възможности и приложение, дипломна защитаNoSQL бази от данни - възможности и приложение, дипломна защита
NoSQL бази от данни - възможности и приложение, дипломна защитаVeselin Nikolov
 
20 начина да си убиеш блога, без да се усетиш
20 начина да си убиеш блога, без да се усетиш20 начина да си убиеш блога, без да се усетиш
20 начина да си убиеш блога, без да се усетишVeselin Nikolov
 
Блоговете между двата блогкемпа във Велико Търново
Блоговете между двата блогкемпа във Велико ТърновоБлоговете между двата блогкемпа във Велико Търново
Блоговете между двата блогкемпа във Велико ТърновоVeselin Nikolov
 

Plus de Veselin Nikolov (6)

Leadership for Developers, WordCamp Norway
Leadership for Developers, WordCamp NorwayLeadership for Developers, WordCamp Norway
Leadership for Developers, WordCamp Norway
 
WordPress Security @ Vienna WordPress + Drupal Meetup
WordPress Security @ Vienna WordPress + Drupal MeetupWordPress Security @ Vienna WordPress + Drupal Meetup
WordPress Security @ Vienna WordPress + Drupal Meetup
 
Разширения
РазширенияРазширения
Разширения
 
NoSQL бази от данни - възможности и приложение, дипломна защита
NoSQL бази от данни - възможности и приложение, дипломна защитаNoSQL бази от данни - възможности и приложение, дипломна защита
NoSQL бази от данни - възможности и приложение, дипломна защита
 
20 начина да си убиеш блога, без да се усетиш
20 начина да си убиеш блога, без да се усетиш20 начина да си убиеш блога, без да се усетиш
20 начина да си убиеш блога, без да се усетиш
 
Блоговете между двата блогкемпа във Велико Търново
Блоговете между двата блогкемпа във Велико ТърновоБлоговете между двата блогкемпа във Велико Търново
Блоговете между двата блогкемпа във Велико Търново
 

WordPress Security