分享一个二进制文件上传技巧

先说说环境吧,之前在渗透过程中遇到一个linux+tomcat的站,不通外网,能执行大部分的shell命令 权限非root。手上只有一个jspspy的shell,web目录是挂载的网络磁盘(类似于NAS之类的吧),整个磁盘被限制只能读取不能写入,而且jspspy的上传功能也无法正常使用(上传文件提示是上传成功,但是就是没有文件,大神说可能是jsp上传组件关闭的原因)。现在能写的方式就只有通过shell 新建文本文件的方式写入到/tmp之类的可写目录下。

现在目的是想通过此服务器代理进内网,由于不能写入webshell 通过jsp代理行不通,往外又不能通,MSF什么的压根排不上用场,唯一希望寄托的在dns隧道上,所以只能通过上二进制+dns隧道(最终dnscat是上去了,但dns隧道还是出不来……)。

由于jspspy的上传功能无法正常使用 想上二进制就成了难题。还好有师傅提醒可以使用base64的方式。中途也遇到不少坑,借此简单把这个方式分享下,希望遇到类似的师傅能少走弯路。

首先在本地把需要上传的二进制文件进行base64加密 例如nc

base64 /root/nc > /root/nc_enc.txt

然后把加密后的字符串用shell写入到服务器上,然后再用base64还原成二进制文件执行

base64 -d -i /tmp/nc_enc.txt > /tmp/nc

这里一定要加上-i参数 该参数用于忽略非字母表字符,比如换行符。因为在POST提交过程中貌似要被添加上换行符,为此我就被坑了一天时间。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值