https://github.com/imagemlt/webshellmanager
WebShellManager build on cpp with libcurl
https://github.com/imagemlt/webshellmanager
cpp libcurl security
Last synced: 8 months ago
JSON representation
WebShellManager build on cpp with libcurl
- Host: GitHub
- URL: https://github.com/imagemlt/webshellmanager
- Owner: imagemlt
- Created: 2017-10-22T15:51:48.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2018-12-14T01:48:34.000Z (over 7 years ago)
- Last Synced: 2025-04-19T10:25:24.475Z (11 months ago)
- Topics: cpp, libcurl, security
- Language: C++
- Size: 4.65 MB
- Stars: 23
- Watchers: 2
- Forks: 10
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# WebShellManager
WebShellManager build on cpp with libcurl
## features
* 多个webshell批量管理
* 支持自定义参数位置及加密方式
* 支持需要有附加参数的特殊shell
* 可绕过open_basedir、disable_functions等限制
* 一键不死shell,维持权限
* 附有脚本批量生成可用的shell
* 自定义header、cookie
## build
**CMake**
```bash
cmake .
make
```
**动态编译**
```bash
g++ json.hpp cryptohelper.cpp curlhelper.cpp WebShell.cpp main.cpp -o test -lcurl -lpthread
```
**静态编译**
```bash
g++ json.hpp cryptohelper.cpp curlhelper.cpp WebShell.cpp main.cpp -static -o test -static-libgcc -static-libstdc++ /usr/local/lib/libcurl.a /usr/local/lib/libz.a /usr/local/ssl/lib/libssl.a /usr/local/ssl/lib/libcrypto.a -ldl -lpthread
```
>test文件为x64平台下静态编译好的可执行文件
>note:由于使用[https://github.com/nlohmann/json](https://github.com/nlohmann/json)因此需编译器支持C++11
## usage
* list :列出所有的shell
* delete index:删除指定index的shell
* add json:添加shell,格式为json
* execute index 命令:执行命令,当index为all时在所有shell中执行
* push index 本地文件路径 目标文件路径:上传本地文件到制定路径
* neverdie index:一键不死shell
## json format:
```json
{
"address":"地址",
"custom":{
"addonget":null,
"addonpost":null,
"cookies":null,
"headers":null,
"encrypt":null,
"place":"COOKIE",
"placevalue":"xss"
},
"pass":"xxx",
"method":"GET"
}
```
> note:写为单行,例如:add {"address":"http://baidu.com/shell.php","pass":"mdzz","method":"GET"}
### 详细解释
* 格式:json
* 参数:
* encrypt(string): 加密方法,目前支持BASE64_ENCODE BASE64_DECODE ROT13 PADDING 格式为"加密方法1 加密参数*加密方法2 加密参数"
* place(string): 参数位置,值为GET POST COOKIE HEADER
* placevalue(string): 与place对应,表示参数
* addonget(object): 附加的get参数键值对,其中如果键与密码重复<+>将被替换为执行的脚本。
* addonpost(object): 附加的post参数键值对,与上者相同。
> 所有添加过的shell会以json格式保存于shells.json文件夹下