Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wabzsy/shiropaddingoracle
https://github.com/wabzsy/shiropaddingoracle
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/wabzsy/shiropaddingoracle
- Owner: wabzsy
- License: mit
- Created: 2022-01-24T14:10:52.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2022-01-24T15:02:08.000Z (almost 3 years ago)
- Last Synced: 2024-06-21T18:53:15.291Z (7 months ago)
- Language: Go
- Size: 5.86 KB
- Stars: 13
- Watchers: 2
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 简介
hvv红队渗透测试工具, Go版本的多线程Shiro-721(PaddingOracle)利用工具
# 使用场景
> 一般用于: 你在hvv时发现了一个带Shiro-721漏洞的站, 但是苦于现有exp都是单线程的, 而且崩了要重新开始跑, 好不容易跑出来了结果还TM不能用, 最后跑的心态爆炸还没日下来的情况.
# 特点
- go语言编写, 方便快速的在各种平台编译运行, 无依赖, 不需要装jdk/jre之类的运行时环境
- 有"错误补偿"机制, 基本上只要能跑出结果就一定是可用的(实现方法可以看下源码~)
- 支持多线程(一般给个15-60线程就差不多了, 具体参数需要根据实际情况微调)
- 支持后端带负载均衡节点的情况
- 支持后端带负载均衡节点, 但是其中一个或多个节点还TM不可用的情况
- 支持后端带负载均衡节点, 但是其中一个或多个节点用的还TM不是相同的SecretKey的情况
- 支持"断点续传", 比如你在本机跑了一半了, 突然电脑蓝屏了(or 五国了), 恢复之后可以接着刚才的进度继续跑
- 支持"断点续传", 比如你在VPS上跑了一半了, 然后蓝队突然把你VPS的IP给Ban了, 然后VPS提供商还TM不给换IP, 这时你可以带着session文件换个VPS继续跑
- 支持随机(or 自定义)`padding byte`
- 支持设置"重试次数"(一般用于后端有多个负载节点, 但是只有部分个负载节点能正确响应的情况)
- 支持设置在恢复会话的时候从指定的block开始跑
- 支持设置"超时时间", 比如后端节点有三台响应的非常快, 有一台响应的特别慢, 这时可以设置"超时时间"来避开响应慢的那台# 编译方式
`go build -trimpath -ldflags "-s -w"`
# 使用方式
## 参数
```
$ ./ShiroPaddingOracle
Usage of ./ShiroPaddingOracle:
-a int // 重试次数, 需要根据后端节点数量和质量进行微调
number of attempts (default 15)
-b int // 一般默认就好
block size (default 16)
-c int // 调试用的, 一般默认(随机)就好
custom padding byte
-d int // 单个HTTP请求的超时时间, 根据目标响应速度微调
timeout seconds (default 3)
-i string // 指定存放合法rememberMe数据的文件
rememberMe data file (default "rememberMe.txt")
-p string // 指定 payload 文件
payload data file (default "payload.ser")
-r string // 指定会话文件继续跑或者查看结果
load session file to restore
-s string // 指定会话文件的文件名, 一般默认就好
session file
-t int // 并发线程数
number of threads (default 16)
-u string // 目标地址
target url
-v verbose // 详细模式, 一般用于调试```
## 新建会话
`./ShiroPaddingOracle-darwin-arm64 -u http://127.0.0.1:8081/jeesite/a/login -p foobar.class -i rememberMe.txt -t 64`
- `-u` 目标地址: http://127.0.0.1:8081/jeesite/a/login
- `-p` Payload文件: foobar.class (咋生成应该不用我说吧..)
- `-i` rememberMe数据文件: rememberMe.txt
- `-t` 线程数: 64## 恢复会话
`./ShiroPaddingOracle-darwin-arm64 -r 2022-01-07_13-33-17.session`
- 从`2022-01-07_13-33-17.session`这个文件恢复会话继续跑或者查看跑完的结果
# 注意事项
- 打目标之前建议先本地搭建环境测试
- 选个靠谱的payload, 争取一次成功, 不然白跑, 而且目标硬盘可能会被日志塞满
- 线程数不要设的太高, 不要影响目标的正常业务
- 跑的时候尽量看是看着点, 不然IP被Ban了还继续跑浪费时间
- 具体使用细节请看源码