zoukankan      html  css  js  c++  java
  • 几款常见web扫描器的简要记录

    一、前期侦查

    为了减少和目标系统的交互(防止触发报警),建议将目标站点镜像一份到本地

    httrack(镜像网站到本地)  ====> 根据引导填入相关信息即可,使用非常简单

    二、扫描

    扫描分两种:一种是主动扫描,一种是截断代理

    三、扫描工具

    * Nikto(弱点扫描,输出结果全部为弱点项)

    perl语言开发的开源web安全扫描器

    扫描软件版本

    搜索存在安全隐患的文件(比如系统管理员将后台代码打包备份后忘了删留在web目录下的打包文件等可能泄露隐私的文件)

    服务器配置漏洞

    WEB Application层面的安全隐患

    避免404误判原理:Nikto会先随机向目标请求若干类型的随机肯定不存在的文件,来获取不同扩展名的文件404的真实返回内容,这样在扫描时收到404后会和收集到的真实404库进行对比,能匹配到则为真404,否则为假404

    (注意:很多服务器不遵守RFC标准,对于不存在的对象也会返回200,)(可以使用 -no404 参数关闭该功能)

    使用说明:

    nikto -host https://www.baidu.com  ====> 常规扫描方法

    nikto -host https://www.google.com -useproxy http://localhost:1080  ====> 代理扫描方法

    在扫描的时候可以输入以下值来与Nikto交互:

    空格 =返回当前扫描状态

    v -显示扫描过程的详细信息

    d -显示扫描过程的巨详细信息

    e -显示错误信息

    p -显示进程信息

    r -显示重定向信息

    c -显示cookie信息

    a -显示认证信息

    q -退出

    N -下一台主机

    P -暂停

    Nikto默认不支持自动输入用户名密码登录,想要扫描登录后的页面可以使用cookie的方式。 修改配置文件里的'#STATIC-COOKIE='可以实现带cookie扫描

    例: STATIC-COOKIE="PHPSESSID"="3804689b6bbfe8729681b0b8d547b1d0";"security"="low"

    配置文件路径:

    /etc/nikto.conf

    * Vega

    JAVA编写的开源web扫描器

    支持主动扫描和截断代理

    支持爬站、处理表单、注入测试

    支持SSLhttp://vega/ca.crt

    * Skipfish(经测试此工具极其牛逼,才300K可以做到这个程度,google就是牛逼)

    C语言编写

    google开发的实验性的主动web安全评估工具

    递归爬网

    基于字典的探测

    速度较快

    多线程扫描

    启发式自动内容识别

    误报率低

    用法:

    Usage: skipfish [ options ... ] -W wordlist -o output_dir start_url [ start_url2 ... ]

    例:

    skipfish -o result http://172.20.163.44/dvwa/   ====>注意:默认无论指什么路径skipfish都会从根路径开始扫

    -I:只检查包含'string'URL

    -X:不检查包含'string'URL

    -K:不对指定参数进行Fuzz测试

    -D:跨站点爬另外一个域  ====>如果被扫描目标没有链接链到另外一个域名则不会主动去扫,默认爬到不是目标的域名不扫

    -l:每秒最大请求数

    -m:每个IP最大并发连接数

    --config:指定配置文件

    skipfish -o result @存储URL文件  ====> 可以通过@方式读取存放有待扫描URL文件来实现同时扫描多个目标

    skipfish -o result -S complet.wl -W a.wl http://172.20.163.44  ====> 默认只扫描超链接能连接到的地方,可以通过-W的方式加字典来爬取隐藏的目录及文件

    (可以通过'dpkg -L skipfish | grep wl'查看wl字典文件路径) (-W可以自动补充字典,当碰到字典里没有的会写入这个文件,供下次扫描使用)

    身份认证:

    1、提交表单

    skipfish -o result --auth-form '需要密码的URL' --auth-user '用户名' --auth-pass '密码' --auth-verify-url '登陆成功后的URL'

    (注意:如果程序不能自动找到用户名填写位置则需手工添加'--auth-form-target 表单名称'告诉程序具体是哪个表单,

    以及手工添加'--auth-user-field 表单中的位置'/'--auth-pass-fields 表单中的位置'告诉程序应该填在该表单的哪个位置里,

    表单名称以及表单位置通过F12后点击表单位置即可在源代码中看到)

    举例:

    skipfish -o result112 --auth-form http://172.20.163.44/dvwa/login.php --auth-form-target http://172.20.163.44/dvwa/login.php

    --auth-user-field username --auth-user admin --auth-pass-field password --auth-pass password --auth-verify-url http://172.20.163.44/dvwa/index.php -I dvwa http://172.20.163.44/dvwa/

    (注意:不知为啥表单名称和登陆URL一样,表单名称提取自"<form action='login.php' method='post'>==$0"中的'login.php',姑且认为表单名就是路径+action的值吧)

    2cookie登陆

    skipfish -C 'cookie' -o test http://172.20.163.44   ===> cookie有多个值时要用多个'-C'来填充

    举例:

    skipfish -o bb -I dvwa -C "PHPSESSID=3804689b6bbfe8729681b0b8d547b1d0" -C "security=low" http://172.20.163.44/dvwa/

    * Arachni(支持分布式扫描,感觉非常产品化的一个东西,特别适合企业使用)

    特点:可以向其他主机安装agent,实现统一管理、分布式扫描,安装简单

    安装:

    http://www.arachni-scanner.com/download/

    解压出来后在该文件夹下的bin目录里执行arachni_web即可开启web端口

    agent运行命令: ./arachni_rpcd --address=服务器IP --port=本地监听端口 --nickname=test1

    agent分组运行命令: ./arachni_rpcd --address=服务器IP --neighour=你要和谁在一组就写谁的IP:PORT,第一个agent肯定是以单个形式注册的,剩余的才是和第一个建组 --nickname=test2

    小技巧:php因为是服务端脚本语言,所以它的代码不会在浏览器被执行,要想打印出php脚本代码,只需在路径后加上'-s'即可

    例:http://172.20.163.44/dvwa/login.php?-s

  • 相关阅读:
    10-JS的函数学习
    Servlet(生命周期)
    09-js数组常用方法
    08-计算器案例
    07-js数组
    06-js的逻辑结构
    使用css设置三角形
    关于background-size 的一点小坑
    a 标签实现分享功能
    关于页面缩放时css错乱的处理方法---之一
  • 原文地址:https://www.cnblogs.com/baihualin/p/10954718.html
Copyright © 2011-2022 走看看