Перейти к содержимому

owasp

Регистрация: 03 апр 2011
Offline Активность: 09 мар 2014 16:17
-----

Мои сообщения

В теме: Взаимодействие отделов тестирования и разработки

10 января 2014 - 22:10

Много ответов, понял характер советов, большое спасибо. Давайте закроем обсуждение.
Важная ремарка про компанию: разработчики, документаторы, тестировщики, администраторы, аналитики и поддержка выкладываются ради друг друга по полной. Роли совмещаются, так как люди с вагонами знаний и опыта. Компания небольшая, правила в ней меняются часто, в лучшую сторону, и уже сменились. Зарплаты достойные, премия не играет роли (моё скромное мнение). Вероятно, такого нет больше нигде.
Любые показатели не прошедшие проверку не влияют на премию, но сохраняются и их считать надо (считал бесполезным лишь этот момент).

С момента начала обсуждения эксперимент с оценкой друг друга прошел и забыт. Вывод - можете попробовать сделать взаимную оценку участников команды, польза будет в том, что произойдёт некое изменение ("любая движуха, кроме голодовки" (с) на пользу), которое можно будет заменить чем-то другим, улучшив мир.

И текущий сайт не нравится (личная оценка). Повторюсь, давайте закроем обсуждение.

В теме: Тестирование безопасности сайтов. Простветите невежду.

27 апреля 2013 - 18:06

Обратите внимание на текущий сайт.
upd.
Текст основан на материале статьи "Площадка для взлома: головоломки для хакеров" (http://www.xakep.ru/...289/default.asp). Отличается структурой и ссылками.
Уязвимые web-приложения
____________________________________________________
Damn Vulnerable Web App
SQL-инъекции, XSS и многое другое.
Это специальная разработка для обучения и тестирования, а не реальное web-приложение.

GNU GPL v3 (1,3 Мб)

Contact: dvwa@dvwa.co.uk
Website: http://www.dvwa.co.uk
Download: http://sourceforge.net/projects/dvwa/
SVN: http://dvwa.svn.sour...et/svnroot/dvwa
PHP, MySQL
____________________________________________________

Moth​
SQL-инъекции, XSS и многое другое. Реальные приложения (старыми WordPress, Vanilla, ...) и демонстрационные приложения с уязвимостями. Данный проект - тестоавя площадка для w3af (Web Application Attack and Audit Framework, http://w3af.sf.net/).
GNU GPL (416,3 Мб )

WebSite: http://www.bonsai-se...search/moth.php
Download: http://sourceforge.n...3af/files/moth/
VMware (Ubuntu 8.10)​, PHP, Tomcat 6, MySQL
____________________________________________________

OWASP WebGoat
XSS, контроль доступа, безопасность потоков, монипуляция скрытыми полями форм, манипуляция параметрами, утечка сессионных cookies, слепые SQL-инъекции, числовые SQL-инъекции, строковые SQL-инъекции, веб-сервисы, ошибки аутентификации, опасные HTML комментарии, ...
GNU GPL v2 (83 Мб)

Website: https://www.owasp.or...WebGoat_Project
Devel: http://code.google.com/p/webgoat/
Download: http://code.google.c.../downloads/list
Video: http://yehg.net/lab/...ing/webgoat.php
Tomcat, Java, J2EE
____________________________________________________
Butterfly​
Наличие уязвимостей: уязвимости сессий, инъекции данных, ошибки загрузки файлов, межпользовательский доступ, повышение привелегий, удалённое выполнение кода, AJAX уязвимости.
Руководство по устранению ​этих уязвимостей.

(23 Мб, 21.10.2008)

Website: http://sf.net/projec...hebutterflytmp/
Linux, FreeBSD, Apache, PHP, MySQL
____________________________________________________
Securebench​
Подборка из 8-ми реально существующих программ, написанных на Java, используются старые версии: jboard (0.30), blueblog (1.0), webgoat (0.9), blojsom (1.9.6), personalblog (1.2.6), snipsnap (1.0-BETA-1), road2hibernate (2.1.4), pebble (1.6-beta1), roller (0.9.9).
Наличие уязвимостей: SQL-инъекции, XSS, HTTP-склейка, раскрытие путей (Path traversal) и, возможно, ​многие другие.

(105 Мб)

Website: http://suif.stanford...its/securibench
Java, J2EE
____________________________________________________
Mutillidae​
Приложение на PHP, в котором есть все уязвимости OWASP Top 10.
(4,8 Мб)

Website: http://www.irongeek....hp-owasp-top-10
PHP, Apache, MySQL
____________________________________________________
OWASP InsecureWebApp
Apache License v2.0​ (0,7 Мб, 27.01.2005)

Website: https://www.owasp.or...eb_App_Project​
Download: http://sourceforge.n...insecurewebapp/
Java, Tomcat
____________________________________________________

Многие фирмы, выпускающие инструменты автоматичкого поиска уязвимостей веб-приложений серьезно подходят к процессу тестирования этих сканеров. Для тестирования сканеров созданы специальные уязвимые узлы (тестовые площадки), эти площадки наглядно демонстрируют возможности сканера. Если хочется узнать, что говорит определённый сканер, если находит SQL-инъекцию. Или узнать - какие SQL-инъекции сканер находит, а какие нет. То можно использовать эти тестовые площадки.
Эти сайт заточены именно под сканеры, уязвимости на них фиктивные, а не настоящие.

Адрес:​​​​​ http://zero.webappsecurity.com/
Платформа:​​​​​ ASP​
Сканер разработчика​​:​​​​​ HP WebInspect​

Адрес:​​​​ ​ http://demo.testfire.net/
Платформа:​​​​ ASP.NET
Сканер разработчика:​​​​​​ IBM Rational AppScan

Адрес:​ http://testaspnet.vulnweb.com/
Платформа:​ ASP.NET
Сканер разработчика: Acunetix Web Vulnerability Scanner

Адрес:​​ ​ http://testphp.vulnweb.com/
Платформа:​​ PHP
Сканер разработчика:​​ Acunetix Web Vulnerability Scanner

Адрес:​​​ ​ http://testasp.vulnweb.com/
Платформа:​​​ ASP
Сканер разработчика:​​​​​ Acunetix Web Vulnerability Scanner

В теме: Не могу запустить ни один тест!

18 апреля 2013 - 09:07

Столкнулся с такой же ошибкой.
WebDriver 2.32.0, Firefox 19.0, 20.0, 20.0.1.

SetUp : OpenQA.Selenium.WebDriverException : Failed to start up socket within 45000 ms

Со стеком:
at OpenQA.Selenium.Firefox.Internal.ExtensionConnection.ConnectToBrowser(TimeSpan timeToWait) in c:\Projects\WebDriver\trunk\dotnet\src\WebDriver\Firefox\Internal\ExtensionConnection.cs:line 266
at OpenQA.Selenium.Firefox.Internal.ExtensionConnection.Start() in c:\Projects\WebDriver\trunk\dotnet\src\WebDriver\Firefox\Internal\ExtensionConnection.cs:line 98
at OpenQA.Selenium.Firefox.FirefoxDriver.StartClient() in c:\Projects\WebDriver\trunk\dotnet\src\WebDriver\Firefox\FirefoxDriver.cs:line 225
at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities) in c:\Projects\WebDriver\trunk\dotnet\src\WebDriver\Remote\RemoteWebDriver.cs:line 88
at OpenQA.Selenium.Firefox.FirefoxDriver..ctor(FirefoxBinary binary, FirefoxProfile profile, TimeSpan commandTimeout) in c:\Projects\WebDriver\trunk\dotnet\src\WebDriver\Firefox\FirefoxDriver.cs:line 162
...
Никак не исправляется. Возникает на серверной ОС.
Наблюдается только на одной машине с Windows Server 2008.
На Windows 7 всё как надо работает.

Дополнительно к ней есть проблема - расширение WebDriver загружается как отключенное.
В резульатете при старте браузера настройки не применяются и браузер ведёт себя как при первом запуске.
Эта дополнительная проблема описана на StackOverflow: http://stackoverflow...n-browser-start
Как побороть отключенность плагина после загрузки - нашел.
В тесте использовал установлку следующей настройки:
firefoxProfile.SetPreference("browser.download.dir", System.Environment.CurrentDirectory);
Если её использовать, то после старта - расширения браузера не включаются. Если её не использовать, то расширение загружается корректно.
Таким образом, некоторые пользовательскиенастройки могут помешать работе.

Но основная проблема - Failed to start up socket within 45000 ms, пока не решилась.
В похожих темах решения пока тоже не нашел: https://groups.google.com/forum/?fromgroups#!search/Failed$20to$20start$20up$20socket$20within
Пробовал использовать решения:
1. Увеличить время ожидания (сделать больше 45 секунд)
FirefoxBinary firefoxBin = new FirefoxBinary("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");
firefoxBin.Timeout = TimeSpan.FromSeconds(120.0);
2. Переустановить Firefox, почистить профили.
3. Сменить порт
var firefoxProfile = new FirefoxProfile();
firefoxProfile.Port = 40000;
4. Обновить WebDriver (и так последняя версия)
5. Перезагрузить виртуалку.
...

update:
Решил проблему. Но не локализовал решение, сказать что именно сыграло решающую роль - сложно.

В теме: Как ведет себя moveToElement

15 апреля 2013 - 18:00

Если использовать xpath с абсолютными путями, то могут появиться ложные срабатывания?

Нет ложных срабатываний не будет. Просто появляется дублирование кода - для всплывающего элемента нужно повторять в селекторе селектор родительского элемента (так как обычно, у всплывающих элементов нет своего уникального идентификатора в рамках всей страницы). Если не считате дублирование текста селекторов важным, то никаких проблем нет.

При изменении дизайна, придётся не один раз изменить селектор для основного элемента, а изменить его несколько раз - дополнительно поправив селекторы дочерних элементов.

В моём проекте есть строки таблицы (которые могу уникально определить), а внутри строк есть всплывающие элементы - кнопки действий, что появляются для каждой строки при наведении. И у кнопок своих уникальных селекторов нет.
Единственный вариант уникального селектора для всплывающего элемента, заданный относительно браузера - "Уникальный селектор основной строки" + "селектор всплывающего элемента".
Но можно, ведь, получить основную строку по селектору "Уникальный селектор основной строки", а уже относительно полученного IWebElement получить дочерние элементы по коротким относительным селекторам "селектор всплывающего элемента".

Если использовать Java и базовый паттерн PageObject, то задавать относительные селекторы в атрибутах нельзя - все селекторы задаются относительно браузера => приходится дублировать селекторы.
Если использовать чистый PageObject, то работу со всплывающими элементами без дублирования селекторов можно организовать передавая в методы работы с ними базовый для них IWebElement (а относительно него искать).

Можно использовать паттерн HTML Elements, который реализован в разработке Яндекса, тогда исключается дублирование кода и дублирование селекторов:
http://habrahabr.ru/...ex/blog/158787/
https://github.com/y...ls/htmlelements

В своих тестах использую C#. Идеи HTML Elements повторил, как сумел, средствами dotNet. Получилось сыровато (есть проблема, когда компонент вложен в компонент, вложен в компонент и все эти элементы не являются кешируемыми - конечные узлы ищутся долго), но работает. Думаю сделать механизм обновления дерева компонент (Refresh()), как это сделано в TestComplete и разрешить каждому компоненту кешировать экземпляр своего родительского компонента. Это немного увеличит затраты по памяти (16 байт на ссылку), но увеличит быстродействие.

В теме: Как ведет себя moveToElement

12 апреля 2013 - 19:08

1) Указатель оказывается в том месте, куда он был помещён. На своё реальное место указатель не возвращается.
2) Имеет значение. Чтобы навести указатель на элемент, который может быть в конце страницы (быть не видимым) можно пробовать отображать его, используя скроллинг.
Например, в C# это делается при получении значения свойства LocationOnScreenOnceScrolledIntoView см. http://selenium.goog...ledIntoView.htm
var fakePoint = (iwebElement as Locatable).LocationOnScreenOnceScrolledIntoView;
var fakePoint = (iwebElement as RemoteWebElement).LocationOnScreenOnceScrolledIntoView;
В Java есть аналогичный get-метод
getLocationOnScreenOnceScrolledIntoView()
, см. http://selenium.goog...rolledIntoView()
3) Особо с hover-элементами не работал, но понятно, что при работе с ними можно:
3.1. использовать поиск относительно базового элемента, на котором сейчас фокус, а не относительно страницы браузера. Так как поиск относительно браузера даст ложные срабатыввания (если не фильтровать по видимости) и будет выполняться дольше.
3.2. не использовать кеширование элементов (каждый раз искать элементы по новой), так как наличие hover-элемента на странице непостоянное.