• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

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

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Lotus и Log4j

  • Автор темы Borz
  • Дата начала
Статус
Закрыто для дальнейших ответов.
B

Borz

Что есть:
1) клиент Lotus Notes 8.5.1
2) положенный log4j и commons-logging в каталог клиента
3) "пустой" Java-агент

код в агенте очень простой:

Код:
public class JavaAgent extends AgentBase {
protected Logger LOG = Logger.getLogger(getClass());

public void NotesMain() {

try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
LOG.info("test");
....

сам log4j.properties приложен к агенту как ресурс
Код:
log4j.rootLogger=DEBUG,stdout,file
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p,%d{dd MMM yyyy HH:mm:ss,SSS},[%c],%m%n
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.file=test.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.conversionPattern=%d{ABSOLUTE} %5p %t %c{1}:%M:%L - %m%n

собственно, на консоли вывода нету (которая Java Debug Console), в файле console.log нет и самого файла test.log тоже не удаётся найти :)
 
T

turumbay

похоже, что ресурсы из агента не попадают в classpath...
можно явно сконфигурить логер через PropertyConfigurator:<!--shcode--><pre><code class='java'> public void NotesMain() {

try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();

Properties log4jProperties = new Properties();
InputStream in = getClass().getClassLoader().getResourceAsStream("log4j.properties");
log4jProperties.load(in);
PropertyConfigurator.configure(log4jProperties);

Logger logger = Logger.getLogger(getClass());
logger.error( "bugaga");


} catch(Exception e) {
e.printStackTrace();
}
}[/CODE]
 

garrick

Lotus Team
26.10.2009
1 351
151
BIT
188


+ база с примером
 
Последнее редактирование:
  • Нравится
Реакции: lmike

savl

Lotus Team
28.10.2011
2 597
310
BIT
180
@garrick
вот скажите мне, в чем его прикол? ну подключу в java, ну может через ls2j.
Но пишет то он куда? в Лог сервера? Отлично... Там много всего пишется.
В отдельный файл? отлично... на фс сервера, значит доступа может не быть к нему и надо дергать админа.
мне в этом отношении больше openLog нравится, он хотя бы в базу пишет, можно посмотреть из клиента.
Может я прикола не понимаю, никогда не использовал, может и есть смысл...
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
215
Последнее редактирование:

garrick

Lotus Team
26.10.2009
1 351
151
BIT
188
@garrick
вот скажите мне, в чем его прикол? ну подключу в java, ну может через ls2j.
Но пишет то он куда? в Лог сервера? Отлично... Там много всего пишется.
В отдельный файл? отлично... на фс сервера, значит доступа может не быть к нему и надо дергать админа.
мне в этом отношении больше openLog нравится, он хотя бы в базу пишет, можно посмотреть из клиента.
Может я прикола не понимаю, никогда не использовал, может и есть смысл...
Пишет как и OpenLog в отдельную базу/базы, но только документы в этой базе выглядят также как и в стандартной LOG.NSF, формат вывода сообщений настраивается через стандартные настройки LOG4J. Настройки, в том числе и уровни логирования можно менять "на лету".
И, да, по LotusScript не заточено, только если через LS2J.
 
Последнее редактирование:

garrick

Lotus Team
26.10.2009
1 351
151
BIT
188
т.е. запускается сервлет двумя методами...
смущает жвм 1.3
Оно ж древнее, фиг знает какое... Последний раз обновлялось, по-моему, в 2013-м году. Ещё под Notes 6.5 разрабатывалось.

Разработчик Domino использует стандартный LOG4J, а аппендер перенаправляет вывод логера в лотусовую базу. Можно настроить и в файл - стандартные функции LOG4J это не отменяет.

Например, наша техподдержка очень страдает, что их Kibana не может разобрать наш лотусовый лог, а внедрение этого сильно облегчило бы им жизнь.
 
Последнее редактирование:
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!