XSS 基础入门二 XSpear:XSS 安全漏洞自动扫描工具

简介: 你还在手动测试网站 XSS 安全漏洞检查吗?那么麻烦,又不一定全面解决,为了你的产品,为了在公司摸点鱼,不如尝试一下 XSS 自动扫描工具,为你的产品、工作保驾护航,减低你的工作压力,一起来试试吧!

img

👏 Hi! 我是 Yumuing,一个技术的敲钟人

👨‍💻 每天分享技术文章,永远做技术的朝拜者

📚 欢迎关注我的博客:Yumuing's blog

你还在手动测试网站 XSS 安全漏洞检查吗?那么麻烦,又不一定全面解决,为了你的产品,为了在公司摸点鱼,不如尝试一下 XSS 自动扫描工具,为你的产品、工作保驾护航,减低你的工作压力,一起来试试吧!

XSpear

一款基于 RubyGems 的 XSS 漏洞扫描器。能够进行常见的 XSS 扫描测试以及参数分析。

项目地址:hahwul/XSpear: 强大的XSS扫描和参数分析工具&gem (github.com)

主要特点:

  1. 基于模式匹配的XSS扫描

  2. 检测无头浏览器的alert、confirm、prompt事件

  3. 针对XSS保护绕过来测试请求与响应

  4. 测试XSS盲注(XSS Hunter、ezXSS、HBXSS)

  5. 动态/静态分析:寻找SQL错误模式、分析安全Header、分析其他Header、测试URI路径

  6. 扫描元文件

  7. 基于Ruby开发(GEM库)

  8. 显示table base cli-report、filtered rule和testing raw query(url)

  9. 测试选中的参数

  10. 支持命令行JSON输出格式

  11. 支持Verbose 0-3级

  12. 支持Config文件

  13. 针对任意攻击向量支持自定义回调代码

安装工具(Linux)

Gem 是一个管理 Ruby 库和程序的标准包,它通过 Ruby Gem 源来查找、安装、升级和卸载软件包,非常的便捷。

  • ruby 是一种语言,是某些软件包代码的执行环境。而gem是管理这些基于ruby程序的程序。
  • Mac 自带 gem

我们将采用以上工具协助安装 XSpear ,其工具安装使用教程如下:

  1. yum 安装:yum install rubygems -y
  2. 安装源配置:

    • 列出安装源:gem sources -l
    • 添加安装源 XXX:gem sources -a XXX,如:https://gems.ruby-china.com
    • 删除安装源 XXX:gem sources -r XXX
    • 更新安装源缓存:gem sources -u
  3. 更新 gem 本身:gem update --system

  4. 更新 gem 所有软件包:gem update

完成 gem 安装之后,就可以开始尝试安装 XSpear,步骤如下:

  1. 安装相关依赖:

    gem install colorize
    gem install selenium-webdriver
    gem install terminal-table
    gem install progress_bar
    
  2. 安装最新版本:gem install XSpear

  3. 安装特定版本:

    • 到 GitHub 下载对应版本项目
    • 跳转(cd)到项目下载文件夹:gem install XSpear-{version}.gem
  4. 将此行添加到应用程序的 Gemfile:gem 'XSpear'

  5. 执行工具:bundle

XSpear cli使用

Usage: xspear -u [target] -[options] [value]
[ e.g ]
$ ruby a.rb -u 'https://www.hahwul.com/?q=123' --cookie='role=admin'

[ Options ]
    -u, --url=target_URL             [required] Target Url
    -d, --data=POST Body             [optional] POST Method Body data
        --headers=HEADERS            [optional] Add HTTP Headers
        --cookie=COOKIE              [optional] Add Cookie
        --raw=FILENAME               [optional] Load raw file(e.g raw_sample.txt)
    -p, --param=PARAM                [optional] Test paramters
    -b, --BLIND=URL                  [optional] Add vector of Blind XSS
                                      + with XSS Hunter, ezXSS, HBXSS, etc...
                                      + e.g : -b https://hahwul.xss.ht
    -t, --threads=NUMBER             [optional] thread , default: 10
    -o, --output=FILENAME            [optional] Save JSON Result
    -v, --verbose=1~3                [optional] Show log depth
                                      + Default value: 2
                                      + v=1 : quite mode
                                      + v=2 : show scanning log
                                      + v=3 : show detail log(req/res)
    -h, --help                       Prints this help
        --version                    Show XSpear version
        --update                     Update with online

输出结果说明:

  • (I)NFO:获取信息(例如sql错误,过滤规则,反射的参数等...)
  • (V)UNL:易受攻击的XSS,已检查警报/提示/确认与Selenium
  • (L)OW:低级问题
  • (M)EDIUM:中等水平问题
  • (H)IGH:高级别问题

扫描模式:

  • 0:完全模式(仅显示结果)

  • 1:显示进度条

    [*] analysis request..
    
    [*] used test-reflected-params mode(default)
    
    [*] creating a test query [for reflected 2 param + blind XSS ]
    
    [*] test query generation is complete. [249 query]
    
    [*] starting XSS Scanning. [10 threads]
    
    [#######################################] [249/249] [100.00%] [01:05] [00:00] [  3.83/s]
    
    ...
    
    you see report
    
  • 2:显示扫描日志

    [*] analysis request..
    
    [I] [22:42:41] [200/OK] [param: cat][Found SQL Error Pattern]
    
    [-] [22:42:41] [200/OK] 'STATIC' not reflected
    
    [-] [22:42:41] [200/OK] 'cat' not reflected <script>alert(45)</script>
    
    [I] [22:42:41] [200/OK] reflected rEfe6[param: cat][reflected parameter]
    
    [*] used test-reflected-params mode(default)
    
    [*] creating a test query [for reflected 2 param + blind XSS ]
    
    [*] test query generation is complete. [249 query]
    
    [*] starting XSS Scanning. [10 threads]
    
    [I] [22:42:43] [200/OK] reflected onhwul=64[param: cat][reflected EHon{
         
         any} pattern]
    
    [-] [22:42:54] [200/OK] 'cat' not reflected <img/src onerror=alert(45)>
    
    [-] [22:42:54] [200/OK] 'cat' not reflected <svg/onload=alert(45)>
    
    [H] [22:42:54] [200/OK] reflected <script>alert(45)</script>[param: cat][reflected XSS Code]
    
    [V] [22:42:59] [200/OK] found alert/prompt/confirm (45) in selenium!! '"><svg/onload=alert(45)>[param: cat][triggered <svg/onload=alert(45)>]
    
    ...
    
    you see report
    
  • 3:显示扫描详细日志

    [*] analysis request..
    
    [-] [22:56:21] [200/OK] http://testphp.vulnweb.com/listproducts.php?cat=123 in url
    
    [ Request ]
    
    {
         
         "accept-encoding"=>["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"], "accept"=>["*/*"], "user-agent"=>["Mozilla/5.0 (Windows NT 10.0; WOW64; rv:56.0) Gecko/20100101 Firefox/56.0"], "connection"=>["keep-alive"], "host"=>["testphp.vulnweb.com"]}
    
    [ Response ]
    
    {
         
         "server"=>["nginx/1.4.1"], "date"=>["Sun, 29 Dec 2019 13:53:23 GMT"], "content-type"=>["text/html"], "transfer-encoding"=>["chunked"], "connection"=>["keep-alive"], "x-powered-by"=>["PHP/5.3.10-1~lucid+2uwsgi2"]}
    
    [-] [22:56:21] [200/OK] 'STATIC' not reflected
    
    [-] [22:56:21] [200/OK] cat=123rEfe6 in url
    
    ...
    
    [*] used test-reflected-params mode(default)
    
    [*] creating a test query [for reflected 2 param + blind XSS ]
    
    [*] test query generation is complete. [249 query]
    
    [*] starting XSS Scanning. [10 threads]
    
    ...
    
    [ Request ]
    
    {
         
         "accept-encoding"=>["gzip;q=1.0,deflate;q=0.6,identity;q=0.3"], "accept"=>["*/*"], "user-agent"=>["Mozilla/5.0 (Windows NT 10.0; WOW64; rv:56.0) Gecko/20100101 Firefox/56.0"], "connection"=>["keep-alive"], "host"=>["testphp.vulnweb.com"]}
    
    [ Response ]
    
    {
         
         "server"=>["nginx/1.4.1"], "date"=>["Sun, 29 Dec 2019 13:54:36 GMT"], "content-type"=>["text/html"], "transfer-encoding"=>["chunked"], "connection"=>["keep-alive"], "x-powered-by"=>["PHP/5.3.10-1~lucid+2uwsgi2"]}
    
    [H] [22:57:33] [200/OK] reflected <keygen autofocus onfocus=alert(45)>[param: cat][reflected onfocus XSS Code]
    
    ...
    
    you see report
    

以上参数可在此命令后添加:xspear -u "网站地址" -v {扫描模式}

测试基本使用结束,具体详细使用教程可看下一篇文章,我将以实例进行说明,欢迎关注本博主。

目录
相关文章
|
4月前
|
SQL API Python
`bandit`是一个Python静态代码分析工具,专注于查找常见的安全漏洞,如SQL注入、跨站脚本(XSS)等。
`bandit`是一个Python静态代码分析工具,专注于查找常见的安全漏洞,如SQL注入、跨站脚本(XSS)等。
|
6月前
|
安全 开发工具 git
xss漏洞工具 -- xsser
xss漏洞工具 -- xsser
154 0
|
存储 XML 安全
XSS 基础入门一:理论与实践
XSS 攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括 Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。
186 1
|
安全 开发工具 git
xss漏洞工具 -- xsser
xss漏洞工具 -- xsser
489 0
xss漏洞工具 -- xsser
xss工具
http://huaidan.org/archives/769.html http://www.
902 0
|
4月前
|
存储 安全 JavaScript
手摸手带你进行XSS攻击与防御
当谈到网络安全和信息安全时,跨站脚本攻击(XSS)是一个不可忽视的威胁。现在大家使用邮箱进行用户认证比较多,如果黑客利用XSS攻陷了用户的邮箱,拿到了cookie那么就可以冒充你进行收发邮件,那真就太可怕了,通过邮箱验证进行其他各种网站的登录与高危操作。 那么今天,本文将带大家深入了解XSS攻击与对应的防御措施。
|
5天前
|
安全 前端开发 Java
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第26天】Web安全是现代软件开发的重要领域,本文深入探讨了XSS和CSRF两种常见攻击的原理及防御策略。针对XSS,介绍了输入验证与转义、使用CSP、WAF、HTTP-only Cookie和代码审查等方法。对于CSRF,提出了启用CSRF保护、设置CSRF Token、使用HTTPS、二次验证和用户教育等措施。通过这些策略,开发者可以构建更安全的Web应用。
30 4
|
4天前
|
安全 Go PHP
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第27天】本文深入解析了Web安全中的XSS和CSRF攻击防御策略。针对XSS,介绍了输入验证与净化、内容安全策略(CSP)和HTTP头部安全配置;针对CSRF,提出了使用CSRF令牌、验证HTTP请求头、限制同源策略和双重提交Cookie等方法,帮助开发者有效保护网站和用户数据安全。
23 2
|
6天前
|
存储 安全 Go
Web安全基础:防范XSS与CSRF攻击的方法
【10月更文挑战第25天】Web安全是互联网应用开发中的重要环节。本文通过具体案例分析了跨站脚本攻击(XSS)和跨站请求伪造(CSRF)的原理及防范方法,包括服务器端数据过滤、使用Content Security Policy (CSP)、添加CSRF令牌等措施,帮助开发者构建更安全的Web应用。
34 3