JSP Page Crawler, который извлекает все входные параметры - PullRequest
1 голос
/ 25 декабря 2010

Вам не известно о компоненте Java с открытым исходным кодом, который позволяет сканировать набор динамических страниц (JSP), а затем извлекать все входные параметры оттуда.Конечно, сканер мог бы сканировать статический код, а не динамический код, но моя идея здесь состоит в том, чтобы расширить его для сканирования веб-сервера, включая весь код на стороне сервера.Естественно, я предполагаю, что инструмент будет иметь полный доступ к просканированному веб-серверу, а не с помощью каких-либо хаков.

Идея состоит в том, чтобы создать статический анализатор, способный обнаруживать все поля параметров (request.getParameter () и тому подобное) со всех динамических страниц.

1 Ответ

3 голосов
/ 26 декабря 2010

Идея состоит в том, чтобы создать статический анализатор, способный обнаруживать все поля параметров со всех динамических страниц.

Нельзя использовать сканер web (в основном, HTML-парсер) для извлечения параметров запроса.Они могут максимально сканировать структуру HTML.Вы можете использовать, например, Jsoup для этого:

for (Element form : Jsoup.connect("http://google.com").get().select("form")) {
    System.out.printf("Form found: action=%s, method=%s%n", form.attr("action"), form.attr("method"));
    for (Element input : form.select("input,select,textarea")) {
        System.out.printf("\tInput found: name=%s, value=%s%n", input.attr("name"), input.attr("value"));
    }
}

Это печатает в настоящее время

Form found: action=, method=
    Input found: name=hl, value=en
    Input found: name=source, value=hp
    Input found: name=ie, value=ISO-8859-1
    Input found: name=q, value=
    Input found: name=btnG, value=Google Search
    Input found: name=btnI, value=I'm Feeling Lucky
    Input found: name=, value=
Form found: action=/search, method=
    Input found: name=hl, value=en
    Input found: name=source, value=hp
    Input found: name=ie, value=ISO-8859-1
    Input found: name=q, value=
    Input found: name=btnG, value=Google Search
    Input found: name=btnI, value=I'm Feeling Lucky

Если вы хотите сканировать источник JSP код для любых форм / входов, тогда вы должны смотреть в другом направлении, это определенно не должно называться "веб-сканер".К сожалению, такой инструмент статического анализа не приходит в голову.Самое близкое, что вы можете получить, это создать Filter, в котором регистрируются все отправленные параметры запроса.

Map<String, String[]> params = request.getParameterMap();
// ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...