致远OA帆软报表组件前台XXE漏洞挖掘过程

一:挖掘过程

分析 xml 文件

/A8/ApacheJetspeed/webapps/seeyonreport/WEB-INF/web.xml

找到并分析对url: /seeyonreport/SeeyonReportServiceServlet 的请求处理类 com.seeyon.ctp.seeyonreport.service.SeeyonReportServiceServlet

<servlet>
    <servlet-name>SeeyonReportServiceServlet</servlet-name>
    <servlet-class>com.seeyon.ctp.seeyonreport.service.SeeyonReportServiceServlet</servlet-class>
    <load-on-startup>2</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>SeeyonReportServiceServlet</servlet-name>
    <url-pattern>/SeeyonReportServiceServlet</url-pattern>
</servlet-mapping>

跟入 ServletdoPost 方法中

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}

找到 case SELECT流程

case SELECT:
    this.execSelect(request, response);
    break;

跟入 this.execSelect 函数,如下:

public void execSelect(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    PrintWriter pw = response.getWriter();
    String dataSetName = request.getParameter("dataSetName");
    List<String> tableDataNames = SeeyonReportCommonUtil.getTemplateServerTableDataNames(dataSetName);
    Collections.sort(tableDataNames);
    String json = JSONHelper.list2json(tableDataNames);
    pw.write(json);
    pw.close();
}

获取了下 dataSetName 请求参数的值,传入 SeeyonReportCommonUtil.getTemplateServerTableDataNames() 函数,继续跟进:

public static List<String> getTemplateServerTableDataNames(String cptName) {
    List<String> tableDataNames = getTemplateTableDataNames(cptName);
    List<String> serverDataSet = new ArrayList();
    List<String> allDataSet = getTemplateAllTableDataNames(cptName);
    Iterator iter = allDataSet.iterator();

    while(iter.hasNext()) {
        String name = (String)iter.next();
        if (!tableDataNames.contains(name)) {
            serverDataSet.add(name);
        }
    }

    return serverDataSet;
}

参数值先进入了 getTemplateTableDataNames ,然后又传入了 getTemplateAllTableDataNames 函数。

看一下后面的 getTemplateAllTableDataNames 函数(部分代码省略):

public static List<String> getTemplateAllTableDataNames(String cptName) {
    List<Element> rEles = getWorkBookElement(WorkBook.Report, cptName);
    List<String> serverDataSet = new ArrayList();
    if (!rEles.isEmpty()) {
        Iterator var3 = rEles.iterator();
        while(var3.hasNext()) {
            ……
                }
    }
    return serverDataSet;
}

发现开始的请求参数 dataSetName 的值被当做 cptName,传入 getWorkBookElement(WorkBook.Report, cptName)函数中,继续跟进:

public static List<Element> getWorkBookElement(WorkBook wb, String cptName) {
    Env env = FRContext.getCurrentEnv();
    List eles = null;

    try {
        SAXReader reader = new SAXReader();
        boolean isExist = env.isTemplateExist(cptName);
        if (isExist) {
            String reportPath = StableUtils.pathJoin(new String[]{env.getPath(), "reportlets", cptName});
            File file = new File(reportPath);
            Document document = reader.read(file);
            Element root = document.getRootElement();
            List<Element> childElements = root.elements();
            if (!childElements.isEmpty()) {
                Iterator var11 = childElements.iterator();

                while(var11.hasNext()) {
                    Element el = (Element)var11.next();
                    if (el.getName().equals(wb.name())) {
                        eles = el.elements();
                        break;
                    }
                }
            }
        }
    } catch (Exception var13) {
        LOG.error(var13);
    }

    return eles;
}

可以发现 cptName 貌似被拼接到了路径中,进入 StableUtils.pathJoin 也没发现对特殊字符的过滤,到这里其实已经可以通过 ../ 跳目录,控制 reportPath 值,传入一个我们指定的文件路径

String reportPath = StableUtils.pathJoin(new String[]{env.getPath(), "reportlets", cptName})

再结合 xxe 的示范级写法:

SAXReader reader = new SAXReader();
File file = new File(reportPath);
Document document = reader.read(file);

只要传入一个带有 XXE 载荷的本地文件路径,就可以触发 XXE 漏洞了。

正好,2019 年HW行动期间爆出来一个 帆软报表v8.0 Getshell漏洞,里面就有一个 未授权插件上传,文件内容可控并且路径固定:

/A8/ApacheJetspeed/webapps/seeyonreport/WEB-INF/cache/temp.zip

当然,如果有其他可以控制上传文件内容的方法,也可以。

二:利用方法构造

  1. 通过未授权插件上传,将 XXE 载荷保存到固定路径文件:

/A8/ApacheJetspeed/webapps/seeyonreport/WEB-INF/cache/temp.zip

  1. 通过 /seeyonreport/SeeyonReportServiceServlet 接口,跳目录后,使用 SAXReade 读取 temp.zip 文件即可。

三:影响范围

粗测了下,至少下面几个版本存在此漏洞:

致远A6-V5 V6.1
致远A6-V5 V6.1SP1
致远A8-V5 V6.1SP1
致远A8-V5 V6.1SP2

标签   

15 评论

  1. Arthurplorb
    /回复

    Good post, thank you!

  2. Angelocax
    /回复

    Interesting, I'm following the thread.

  3. LerraArile
    /回复

    Привет! Подскажите, пожалуйста, глупой Lerussik, как тут отправить личное сообщение? Очень надо! Спасибо Hi! Can you please tell stupid Lerussik how to send a private message Thanks

  4. DarnellHam
    /回复

    Between us speaking, I recommend to you to look in google.com

  5. Carloshaits
    /回复

    Yes, I understand you. In it something is also to me it seems it is very excellent thought. Completely with you I will agree.

  6. ScottyPaf
    /回复

    Excuse, I have thought and have removed the idea

  7. Kevingal
    /回复

    What nice answer

  8. FrankMayox
    /回复

    Thank you for another informative website. Where else could I am getting that kind of info written in such a perfect way? I've a venture that I am simply now running on, and I have been at the look out for such information.

  9. Matthewcoeft
    /回复

    ремонт стиральных машин в москве

  10. LarryArrem
    /回复

    Hi colleagues, its wonderful paragraph concerning educationand fully explained, keep it up all the time.

  11. RileyVor
    /回复

    СЕРГЕЙ САРОЯН: ТЕЛЕТРЕЙД В УКРАИНЕ ВОЗГЛАВЛЯЕТ МАХРОВЫЙ МОШЕННИК СО СТАЖЕМ 19.02.2021 То, что международный брокер Телетрейд вот уже четверть века обманывает клиентов по всему миру, давно ни для кого не секрет. А за каждой масштабной аферой, конечно же, стоят люди — те, кто придумал, организовал и десятилетиями внедряет в жизнь преступную мошенническую схему. Среди них особо выделяется Сергей Сароян — директор всех украинских офисов Телетрейд. “Отцом” компании Телетрейд был Владимир Чернобай. Недавно он скончался в Европе, где скрывался от правосудия. Его наследники — вдова Анна Чернобай и племянник Олег Суворов, и другие прижизненные приспешники Чернобая, продолжают «мошенничество в особо крупных размерах». Именно так квалифицировали деятельность Телетрейд в России и Казахстане, где на брокера уже открыты уголовные дела. Но в Украине, несмотря на многочисленные жалобы обманутых клиентов, уголовное дело пока не заведено. Похоже, Сергей Сароян знает, на какие рычаги во властных структурах нажимать, чтобы Телетрейд продолжал безнаказанно грабить украинцев. Сергей Сароян и его роль в глобальном мошенничестве Телетрейд Сергей Сароян — одиозная личность, с раздутым самолюбием и большими амбициями. Хитрый и двуличный, но при этом трусливый и бесхребетный, он умеет приспособиться и готов прогнуться, когда того требует ситуация. Он с легкостью раздает сладкие обещания, и с такой же легкостью подставляет тех, с кем работает, если обстоятельства складываются не в его пользу. Однажды, правда, это ему не помогло, и мошенника выгнали за воровство. Но обо всем по порядку. На заре своей карьеры выпускник одесской академии связи Сергей Сароян, работал в телекоммуникационной компании. В попытке продвинуться по картеной лестнице он не нашел ничего лучше, как предложить руководству свои услуги в качестве доносчика, обещая рассказывать, о чем говорят в коллективе и кто с кем в каких отношениях пребывает. Но это предложение не встретило одобрения и стукачу-неудачнику пришлось уволиться. А невостребованные «способности» пригодились несколько позже, в Телетрейд. Читайте також: Зеленського нарешті облагоразумили: гривню будуть повертати назад у коридор 25-27 за долар В 2005-2006 годах Сергей Сароян был региональным куратором — фактически единоличным правителем Телетрейд в Украине. Ему подчинялись более 30 офисов по всей Украине: Киев, Одесса, Николаев, Харьков, Львов, Черновцы, и другие городах. В ведении Сарояна были также офисы в Европе и Азии — в Италии, Португалии, Польше, Венгрии, Малайзии, и других странах. И деньги лились в карман мошенника рекой — Сергей Сароян получал 3% от инаута (in-out), то есть от разницы между вводом денег клиентов(“in”) и выводом (“out”). Уже тогда в Телетрейд вращались гигантские суммы. В среднем ежемесячно клиенты только украинских офисов Сарояна приносили в компанию от $1 500 000, а выводили около $500 000. То есть in-out, соответственно, составлял $1 000 000, а зарплата Сарояна — более $30 000 в месяц. Но алчность, которая двигала Сарояном, заставляла его направлять всех клиентов в мошеннический проект Телетрейд “Биржа трейдеров”. Торговать на бирже умеет далеко не каждый, и самый логичный выход, который из этого видится — доверить свои деньги профессионалу. Однако брокерская компания не имеет право брать деньги клиентов в управление, и в Телетрейд создали якобы независимый проект «Биржа трейдеров». Мошенник Сергей Сароян именно туда направлял всех клиентов. И подконтрольные трейдеры сливали клиентам депозиты, иногда просто за одну ночь. «Биржа трейдеров» сливала клиентские деньги, и выводить клиентам уже было нечего. Инаут в украинских офисах в этом случае составлял $1 500 000, а зарплата мошенника вырастала до $45 000 только по Украине. Так Сергей Сароян обворовывал клиентов ни один год. Но, в итоге, был изгнан из компании за воровство. Найти равноценный источник дохода мошеннику не удалось, его образ жизни стал значительно скромнее. Попросту говоря, Сергей Сароян начал стремительно беднеть. Компании не спешили предлагать ему руководящие должности, а коучинг особых прибылей не приносил. Читайте також: Вирусная кампания: пойдет ли власть на перенос местных выборов Говорят, что в одну и ту же реку нельзя войти дважды. Но Сергей Сароян сумел. Спустя пять лет его снова позвали в Телетрейд, и он с радостью согласился. Вероятно руководство компании высоко ценит «талант» Сарояна разводить и обворовывать людей. Сегодня мошенник и хапуга Сергей Сароян вернулся и снова начал кидать клиентов, возглавив все клиентские офисы Телетрейд в Украине, Португалии, Италии, Польше, Румынии и Венгрии. Но теперь уже, как директор, он получает не 3%, а долю со слитых депозитов клиентов. А вот признаваться прилюдно в причастности к мошеннической брокерской компании новоиспеченный директор не спешит. В своих соцсетях Сергей Сароян лишь туманно намекает на консультационные услуги, которые оказывает Телетрейд. Аферист тщательно маскируется, однако обманутым клиентам компании удалось вывести его на чистую воду — они получили доказательство того, что именно Сергей Сароян сегодня стоит у руля украинского Телетрейд. Видеоролик, где он сам признается в этом, был показан на пресс-конференции, состоявшейся в июле 2020 года. В этом эксклюзивном видео видно как Сергей Сароян принимает в управление украинские офисы компании Центр Биржевых Технологий — дочернего предприятия Телетрейд в Украине. Эту пресс-конференцию провела инициативная группа обманутых клиентов Телетрейд. Цель, которую они поставили перед собой — вывести на чистую воду брокера-мошенника и все руководство компании, а также вернуть свои деньги. Материалы, собранные обманутыми клиентами демонстрируют схемы развода, которые используются в Телетрейд. В частности, проект «Синхронная торговля», который пришел на смену «Бирже трейдеров». В «Синхронной торговле» уже не люди-трейдеры, а торговые роботы сливают клиентские депозиты. Теперь именно в этот проект заманивает клиентов Сергей Сароян. А затем, в определенный момент, дает программистам компании указание, и те перепрограммируют роботов на заключение заведомо убыточных сделок. Так депозиты клиентов сливаются в ноль. Читайте також: Наркополітика в Україні: орієнтир на авторитарні країни, а краще брати приклад з Чехії Сергей Сароян опустошает карманы украинцев и подрывает экономику страны Эти мошеннические схемы давно попали в поле зрения правоохранительных органов в России — уголовное дело на Телетрейд там завели еще несколько лет назад. Последовали примеру российских коллег и в Казахстане, где уголовное производство началось летом 2020 года. Руководители казахского филиала Телетрейд и дочерней компании Wall Street Invest Partners сейчас находятся в следственном изоляторе. Чтобы замять уголовные дела в России, руководители Телетрейд Сергей Шамраев, Олег Суворов и Мингиян Манжиков дают взятки чиновникам в Следственном Комитете РФ — ежемесячно «отстегивают» им около 20% от поступлений, а это сотни тысяч. И не рублей, а долларов. По инсайдерской информации руководство Телетрейд в России заставляют также финансировать боевые действия на Востоке Украины — мошенники отдают на это еще 10% от поступлений. Если рассматривать деятельность Телетрейд и с этой стороны, то мошенник Сергей Сароян, как директор Телетрейд, не только обворовывает своих сограждан страны, а еще и финансирует боевиков ДНР и ЛНР, отнимающих жизни украинцев. Вызывает удивление тот факт, что в Украине деятельность Телетрейд на протяжении четверти века никто не проверяет. Количество обманутых клиентов брокера огромно. Мошенниками ежемесячно выводятся в офшоры миллионы долларов. Но пока правоохранительные органы не замечают, или не хотят замечать, противозаконной деятельности брокера. По сведениям из источников внутри компании Сергей Сароян рассказывает своим подчиненным — управляющим офисов в Украине, что им не нужно ничего бояться, так как руководство Департамента киберполиции Украины сидит у него на «зарплате». Вот так безнаказанно (пока!) Сергей Сароян разоряет украинцев, подрывает экономику Украины и спонсирует российскую агрессию на Донбассе.

  12. RileyVor
    /回复

    СЕРГЕЙ САРОЯН: ТЕЛЕТРЕЙД В УКРАИНЕ ВОЗГЛАВЛЯЕТ МАХРОВЫЙ МОШЕННИК СО СТАЖЕМ 19.02.2021 То, что международный брокер Телетрейд вот уже четверть века обманывает клиентов по всему миру, давно ни для кого не секрет. А за каждой масштабной аферой, конечно же, стоят люди — те, кто придумал, организовал и десятилетиями внедряет в жизнь преступную мошенническую схему. Среди них особо выделяется Сергей Сароян — директор всех украинских офисов Телетрейд. “Отцом” компании Телетрейд был Владимир Чернобай. Недавно он скончался в Европе, где скрывался от правосудия. Его наследники — вдова Анна Чернобай и племянник Олег Суворов, и другие прижизненные приспешники Чернобая, продолжают «мошенничество в особо крупных размерах». Именно так квалифицировали деятельность Телетрейд в России и Казахстане, где на брокера уже открыты уголовные дела. Но в Украине, несмотря на многочисленные жалобы обманутых клиентов, уголовное дело пока не заведено. Похоже, Сергей Сароян знает, на какие рычаги во властных структурах нажимать, чтобы Телетрейд продолжал безнаказанно грабить украинцев. Сергей Сароян и его роль в глобальном мошенничестве Телетрейд Сергей Сароян — одиозная личность, с раздутым самолюбием и большими амбициями. Хитрый и двуличный, но при этом трусливый и бесхребетный, он умеет приспособиться и готов прогнуться, когда того требует ситуация. Он с легкостью раздает сладкие обещания, и с такой же легкостью подставляет тех, с кем работает, если обстоятельства складываются не в его пользу. Однажды, правда, это ему не помогло, и мошенника выгнали за воровство. Но обо всем по порядку. На заре своей карьеры выпускник одесской академии связи Сергей Сароян, работал в телекоммуникационной компании. В попытке продвинуться по картеной лестнице он не нашел ничего лучше, как предложить руководству свои услуги в качестве доносчика, обещая рассказывать, о чем говорят в коллективе и кто с кем в каких отношениях пребывает. Но это предложение не встретило одобрения и стукачу-неудачнику пришлось уволиться. А невостребованные «способности» пригодились несколько позже, в Телетрейд. Читайте також: Зеленського нарешті облагоразумили: гривню будуть повертати назад у коридор 25-27 за долар В 2005-2006 годах Сергей Сароян был региональным куратором — фактически единоличным правителем Телетрейд в Украине. Ему подчинялись более 30 офисов по всей Украине: Киев, Одесса, Николаев, Харьков, Львов, Черновцы, и другие городах. В ведении Сарояна были также офисы в Европе и Азии — в Италии, Португалии, Польше, Венгрии, Малайзии, и других странах. И деньги лились в карман мошенника рекой — Сергей Сароян получал 3% от инаута (in-out), то есть от разницы между вводом денег клиентов(“in”) и выводом (“out”). Уже тогда в Телетрейд вращались гигантские суммы. В среднем ежемесячно клиенты только украинских офисов Сарояна приносили в компанию от $1 500 000, а выводили около $500 000. То есть in-out, соответственно, составлял $1 000 000, а зарплата Сарояна — более $30 000 в месяц. Но алчность, которая двигала Сарояном, заставляла его направлять всех клиентов в мошеннический проект Телетрейд “Биржа трейдеров”. Торговать на бирже умеет далеко не каждый, и самый логичный выход, который из этого видится — доверить свои деньги профессионалу. Однако брокерская компания не имеет право брать деньги клиентов в управление, и в Телетрейд создали якобы независимый проект «Биржа трейдеров». Мошенник Сергей Сароян именно туда направлял всех клиентов. И подконтрольные трейдеры сливали клиентам депозиты, иногда просто за одну ночь. «Биржа трейдеров» сливала клиентские деньги, и выводить клиентам уже было нечего. Инаут в украинских офисах в этом случае составлял $1 500 000, а зарплата мошенника вырастала до $45 000 только по Украине. Так Сергей Сароян обворовывал клиентов ни один год. Но, в итоге, был изгнан из компании за воровство. Найти равноценный источник дохода мошеннику не удалось, его образ жизни стал значительно скромнее. Попросту говоря, Сергей Сароян начал стремительно беднеть. Компании не спешили предлагать ему руководящие должности, а коучинг особых прибылей не приносил. Читайте також: Вирусная кампания: пойдет ли власть на перенос местных выборов Говорят, что в одну и ту же реку нельзя войти дважды. Но Сергей Сароян сумел. Спустя пять лет его снова позвали в Телетрейд, и он с радостью согласился. Вероятно руководство компании высоко ценит «талант» Сарояна разводить и обворовывать людей. Сегодня мошенник и хапуга Сергей Сароян вернулся и снова начал кидать клиентов, возглавив все клиентские офисы Телетрейд в Украине, Португалии, Италии, Польше, Румынии и Венгрии. Но теперь уже, как директор, он получает не 3%, а долю со слитых депозитов клиентов. А вот признаваться прилюдно в причастности к мошеннической брокерской компании новоиспеченный директор не спешит. В своих соцсетях Сергей Сароян лишь туманно намекает на консультационные услуги, которые оказывает Телетрейд. Аферист тщательно маскируется, однако обманутым клиентам компании удалось вывести его на чистую воду — они получили доказательство того, что именно Сергей Сароян сегодня стоит у руля украинского Телетрейд. Видеоролик, где он сам признается в этом, был показан на пресс-конференции, состоявшейся в июле 2020 года. В этом эксклюзивном видео видно как Сергей Сароян принимает в управление украинские офисы компании Центр Биржевых Технологий — дочернего предприятия Телетрейд в Украине. Эту пресс-конференцию провела инициативная группа обманутых клиентов Телетрейд. Цель, которую они поставили перед собой — вывести на чистую воду брокера-мошенника и все руководство компании, а также вернуть свои деньги. Материалы, собранные обманутыми клиентами демонстрируют схемы развода, которые используются в Телетрейд. В частности, проект «Синхронная торговля», который пришел на смену «Бирже трейдеров». В «Синхронной торговле» уже не люди-трейдеры, а торговые роботы сливают клиентские депозиты. Теперь именно в этот проект заманивает клиентов Сергей Сароян. А затем, в определенный момент, дает программистам компании указание, и те перепрограммируют роботов на заключение заведомо убыточных сделок. Так депозиты клиентов сливаются в ноль. Читайте також: Наркополітика в Україні: орієнтир на авторитарні країни, а краще брати приклад з Чехії Сергей Сароян опустошает карманы украинцев и подрывает экономику страны Эти мошеннические схемы давно попали в поле зрения правоохранительных органов в России — уголовное дело на Телетрейд там завели еще несколько лет назад. Последовали примеру российских коллег и в Казахстане, где уголовное производство началось летом 2020 года. Руководители казахского филиала Телетрейд и дочерней компании Wall Street Invest Partners сейчас находятся в следственном изоляторе. Чтобы замять уголовные дела в России, руководители Телетрейд Сергей Шамраев, Олег Суворов и Мингиян Манжиков дают взятки чиновникам в Следственном Комитете РФ — ежемесячно «отстегивают» им около 20% от поступлений, а это сотни тысяч. И не рублей, а долларов. По инсайдерской информации руководство Телетрейд в России заставляют также финансировать боевые действия на Востоке Украины — мошенники отдают на это еще 10% от поступлений. Если рассматривать деятельность Телетрейд и с этой стороны, то мошенник Сергей Сароян, как директор Телетрейд, не только обворовывает своих сограждан страны, а еще и финансирует боевиков ДНР и ЛНР, отнимающих жизни украинцев. Вызывает удивление тот факт, что в Украине деятельность Телетрейд на протяжении четверти века никто не проверяет. Количество обманутых клиентов брокера огромно. Мошенниками ежемесячно выводятся в офшоры миллионы долларов. Но пока правоохранительные органы не замечают, или не хотят замечать, противозаконной деятельности брокера. По сведениям из источников внутри компании Сергей Сароян рассказывает своим подчиненным — управляющим офисов в Украине, что им не нужно ничего бояться, так как руководство Департамента киберполиции Украины сидит у него на «зарплате». Вот так безнаказанно (пока!) Сергей Сароян разоряет украинцев, подрывает экономику Украины и спонсирует российскую агрессию на Донбассе.

  13. blog
    /回复

    Se pueden controlar las erecciones del paciente en un laboratorio del sueño especial; la ausencia de las mismas es altamente sugestiva de causa orgánica, aunque su presencia no indica de forma necesaria que durante el día se tengan erecciones válidas. Este síndrome es curable en más de 70 por ciento de los casos.

  14. XRumerTest
    /回复

    Hello. And Bye.

  15. windows xp sp3 iso
    /回复

    Yes, now you can get latest version via single link windows xp sp3.

评论