• XSS.stack #1 – первый литературный журнал от юзеров форума

Интересное поведение javaws.

playday

floppy-диск
Пользователь
Регистрация
10.11.2013
Сообщения
8
Реакции
2
При запуске jnlp с удаленного хоста:
Код:
> javaws http://example/path/x.jnlp -silent
Предупреждения(нарочно вызывается устаревшая версия java) перестают вести себя так, как им положено: сообщение "Your java version is insecure" уже не отображается(что логично для silent), но предупреждение "Do you want to run this application?" теряет свою основную функцию, то есть оно отображается, но кнопку cancel можно сколько угодно нажимать - все равно апплет будет загружен и выполнен. Проверка проводилась на java 1.7, но на более свежих версиях ситуация может быть такой же.

Код jnlp:
Код:
<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0" codebase="http://example/path" href="x.jnlp">
    <information>
        <title>Block me :)</title>
        <vendor>Vendor Name</vendor>
        <description>App Description</description>
        <offline-allowed />
    </information>
    <resources>
        <j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se" />
        <jar href="SelfSigned.jar" main="true" />
    </resources>
    <applet-desc name="SelfSigned" main-class="BoomClass" width="500" height="500">
    </applet-desc>
    <update check="background" />
</jnlp>

Судя по всему, параметр -silent никак не передать при удаленном исполнении, поэтому на секьюрити бипас здесь надеяться не приходится. У самого с июня руки не дойдут до полной проверки, поэтому выкладываю здесь. Может кто-то из форумчан проводил исследования в этом направлении и тоже поделится подробностями изучения запуска через silent.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
-silent это параметр запуска командной строки, и передается он ява-машине, а не удаленному jnlp-файлу. По-этому яве, собственно, пофигу, локальный файл или нет.
Если ты можешь передавать свои параметры на запуск, то с большой вероятностью ты сможешь сделать и & cmd.exe
Так что все упирается в возможность протолкнуть свои параметры в строку, которая передается в jvm.
 
-silent это параметр запуска командной строки, и передается он ява-машине, а не удаленному jnlp-файлу. По-этому яве, собственно, пофигу, локальный файл или нет.
Да, это понятно, имел в виду передать при удаленном(не через cmd) исполнении, вроде такого:
Код:
<applet width="300" height="300" code="BoomClass">
    <param name="jnlp_href" value="http://example/path/x.jnlp" />
</applet>
Код:
<jnlp spec="1.0" codebase="http://example/path" href="x.jnlp" silent="true">
...
</jnlp>
Документация говорит, что некоторые параметры могут быть еще переданы в тегах property и через атрибут java-vm-args для j2se, но в обоих случаях именно silent не принимается ни в каком виде. Вот на этом месте пока что и застрял с надеждой, что все-таки можно будет его протолкнуть.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх