目录
1、部署 xray
2、部署测试靶场
jdk8 安装
tomcat 部署
3、测试
基础 web 扫描
GET 请求的扫描:
POST 请求的扫描
参数和选项说明
1、部署 xray
选择最新的 xray 社区版下载
Releases · chaitin/xray · GitHub
解压后运行:
./xray_linux_amd64 -h
如果报错:
./xray_linux_amd64: error while loading shared libraries: libpcap.so.0.8: cannot open shared object file: No such file or directory
解决报错:
sudo yum install libpcap
sudo ldconfig
find / -name *libpcap*
# 使用安装好的 libcap 库生成需要的软连接(根据自己实际的库文件名)
ln -s /usr/lib64/libpcap.so.1 /usr/lib64/libpcap.so.0.8
2、部署测试靶场
jdk8 安装
sudo yum -y install java-1.8.0-openjdk.x86_64 java-11-openjdk-devel.x86_64
tomcat 部署
Apache Tomcat® - Apache Tomcat 8 Software Downloads 下载Core 标题下的包,并解压
下载靶场:
Releases · baidu-security/openrasp-testcases · GitHub vulns.war
将靶场 vulns.war 放入 tomcat 的 webapps 目录下
进入 tomcat 的 bin 目录下,启动 tomcat
chmod +x *sh ./catalina.sh start
3、测试
基础 web 扫描
对于需要登录的网站,要在 xray 的 config.yaml 文件中配置 cookie
GET 请求的扫描:
./xray_linux_amd64 webscan --plugins cmd-injection,sqldet --url http://127.0.0.1:8080/vulns/004-command-2.jsp?cmd=ls --html-output vulns-result__datetime__.html
POST 请求的扫描
./xray_linux_amd64 webscan --plugins cmd-injection,sqldet --url http://127.0.0.1:8080/vulns/004-command-2.jsp --data cmd=ls --html-output vulns-result__datetime__.html
参数和选项说明
webscan : web 扫描模式
--plugins : 扫描插件类型,不指定则使用全部插件,对应插件 key如下(也可以:./xray_linux_amd64 webscan -l 查看所有插件)
插件名称 | Key | 版本 | 说明 |
XSS漏洞检测 | xss | 社区版 | 利用语义分析的方式检测XSS漏洞 |
SQL 注入检测 | sqldet | 社区版 | 支持报错注入、布尔注入和时间盲注等 |
命令/代码注入检测 | cmd-injection | 社区版 | 支持 shell 命令注入、PHP 代码执行、模板注入等 |
目录枚举 | dirscan | 社区版 | 检测备份文件、临时文件、debug 页面、配置文件等10余类敏感路径和文件 |
路径穿越检测 | path-traversal | 社区版 | 支持常见平台和编码 |
XML 实体注入检测 | xxe | 社区版 | 支持有回显和反连平台检测 |
文件上传检测 | upload | 社区版 | 支持常见的后端语言 |
弱口令检测 | brute-force | 社区版 | 社区版支持检测 HTTP 基础认证和简易表单弱口令,内置常见用户名和密码字典 |
jsonp 检测 | jsonp | 社区版 | 检测包含敏感信息可以被跨域读取的 jsonp 接口 |
ssrf 检测 | ssrf | 社区版 | ssrf 检测模块,支持常见的绕过技术和反连平台检测 |
基线检查 | baseline | 社区版 | 检测低 SSL 版本、缺失的或错误添加的 http 头等 |
任意跳转检测 | redirect | 社区版 | 支持 HTML meta 跳转、30x 跳转等 |
CRLF 注入 | crlf-injection | 社区版 | 检测 HTTP 头注入,支持 query、body 等位置的参数 |
XStream漏洞检测 | xstream | 社区版 | 检测XStream系列漏洞 |
Struts2 系列漏洞检测 | struts | 高级版 | 检测目标网站是否存在Struts2系列漏洞,包括s2-016、s2-032、s2-045、s2-059、s2-061等常见漏洞 |
Thinkphp系列漏洞检测 | thinkphp | 高级版 | 检测ThinkPHP开发的网站的相关漏洞 |
shiro反序列化漏洞检测 | shiro | 高级版 | 检测Shiro反序列化漏洞 |
fastjson系列检测 | fastjson | 高级版 | 检测fastjson系列漏洞 |
--url : 目标模式,扫描单个目标 url, 带参数能提高准确性
- 多个目标用 --url-file <url-file>,
- 直接用 http 请求包:--raw-request <request-file>
--data : post 的数据
--html-output : html 输出格式,也可以指定 --json-output、--text-output,后面的输出文件名如果包含__timestamp__ 或 __datetime__ 将自动替换为实际值