目录
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__ 将自动替换为实际值




















