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

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

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

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

В Ltpatoken Обрезаются "=="

  • Автор темы Zeka
  • Дата начала
Z

Zeka

Есть Domino (domino.mycompany.org) и Tomcat (tomcat.mycompany.org).
Юзер кликает по линку в xPages в результате чего открывается сервлетик на томкате.
Т.к. они в одном домене (mycompany.org), то сервлету шлётся куки LtpaToken.

В сервлете код:
Код:
for (int i = 0; i < request.getCookies().length; i++) {
Cookie cookie = request.getCookies()[i];
System.out.println("Cookie: " + cookie.getName() + "=" + cookie.getValue());
}

Проблема
Иногда LtpaToken заканчивается двумя знаками равенства ("AAECAzUwMkEzMDY5NTAyQUFFRjlPcGVyYXRvcjG87ocefdLcsXj4ffiToaDz7y8/ZA==").
В таком случае cookie.getValue() эти знаки обрезает. Т.е. возвращает не полный LtpaToken, а без последних двух символов "==". (FireBag'ом проверял. Куки отсылается с "==")

Вопрос:
Можно ли что-то где-то настроить что бы в конце LtpaToken небыло знаков "==".
Или как поправить java код, что бы он эти самые "==" не терял?
 
Z

Zeka

Вот млин...
request.getHeader("Cookie") возвращает LtpaToken=AAECAzUwMkE0ODRBNTAyQUM2REFPcGVyYXRvcjHI6+IEN1NoeobM2r6E/hKTNd+ENg==
а вот request.getCookies()[0] уже возвращает AAECAzUwMkE0ODRBNTAyQUM2REFPcGVyYXRvcjHI6+IEN1NoeobM2r6E/hKTNd+ENg

Видимо придётся Header парсить вручную?

Если кому-нибудь, когда-нибудь понадобится:
Код:
String[] a = request.getHeader("Cookie").split(";");
String ltpaToken = "";
for(String s: a){
s = s.trim();
if(s.startsWith("LtpaToken")){
ltpaToken = s.substring(s.indexOf('=')+1); 
}
}
 
T

turumbay

Можно ли что-то где-то настроить что бы в конце LtpaToken небыло знаков "==".
Токен идет в base64. Длина кодированного base64 сообщения д.б. кратна 4. Символы равенства (==) используется как раз для выравнивания и не несут полезной нагрузки. Так что можно смело их дописывать самостоятельно :)
 
Z

Zeka

Токен идет в base64. Длина кодированного base64 сообщения д.б. кратна 4. Символы равенства (==) используется как раз для выравнивания и не несут полезной нагрузки. Так что можно смело их дописывать самостоятельно :)
Ах вот оно как... :)
 
Мы в соцсетях:

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