[ww-2160 распорки] - PullRequest
       42

[ww-2160 распорки]

1 голос
/ 01 августа 2011

Это касается недостатка безопасности в оценках OGNL.
Может кто-нибудь привести пример, как это эксплуатируется?

Представьте, что у меня есть параметр запроса, и сервер возвращает его клиенту:
http://test/xyz=test

У меня есть переменная с именем xyz с getter и setter в классе действия, а в JSP у меня есть:

<s:property value="%{xyz}" />

Если кто-то использует URL http://test/xyz=@System@exit(0), что происходит?

1 Ответ

1 голос
/ 03 августа 2011

Во-первых, заявка, на которую вы ссылались, была исправлена ​​в 2007 году. Я не знаю, в чем именно тогда была проблема, но она больше не актуальна.

Если кто-то использует URL http://test/xyz=@System@exit(0), что происходит?

Ваша страница JSP выдаст строковый литерал @System@exit(0).

OGNL-выражения обрабатываются внутри тегов Struts2. В этом случае строковый литерал %{xyz} передается методу setValue(String) из PropertyTag. Внутри этого тега эта строка сравнивается со стеком значений для получения результирующего значения @System@exit(0). Это значение затем выводится.

...