【ctf】命令执行漏洞(三)

本文详细介绍了Linux环境中不同长度可控字符下如何利用命令执行漏洞获取shell。通过wget下载空文件,echo配合>和>>写入shell,以及使用w、ls、sh等命令组合,展示了在15位、7位、5位和4位可控字符限制下的技巧。对于极端情况的4位字符,推荐查阅相关博客以了解更多解决方案。
摘要由CSDN通过智能技术生成

命令执行漏洞(三)

15位、7位、5位、4位可控字符下的任意命令执行

15位可控字符
利用原理:

直接下载一个空文件,然后直接将shell分段写入文件中,最后修改文件名来getshell

wget是Linux中的一个下载文件的工具
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

echo可以直接将字符输出到文件中,但需要使用‘>’符号
且第一次输出到文件中时使用‘>’符号,再输入进文件就需要使用‘>>’来进行追加

例如:将一句话写入文件

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

在这里插入图片描述

注意:当遇到符号时,记得使用反斜杠 \ 进行转译
在这里插入图片描述
在这里插入图片描述

7位可控字符

这里我们使用的命令需要更短

w [-fhlsuV][用户名称]
Linux w命令用于显示目前登入系统的用户信息。

执行这项指令可得知目前登入系统的用户有哪些人,以及他们正在执行的程序。

单独执行 w 指令会显示所有的用户,您也可指定用户名称,仅显示某位用户的相关信息。
> 符号—>生成文件名
> a : 以a为文件名写入a
ls > a:以a为文件名写入a和ls的内容

sh:sh命令就是shell

sh a :执行a文件

当我们想输入长命令时,可以使用 \ 来分割

当我们输入命令出现许多字符时,可以使用base64编码的形式来避免字符的问题
在这里插入图片描述

需要注意的一点,反斜杠也需要反斜杠来注释,而且输入命令时需要倒序输出
在这里插入图片描述
在这里插入图片描述

ls -t :将文件按创建的时间排序,这样就可以控制文件的顺序

5位可控字符

如果是5位可控字符,那么前面输入内容也是没有问题的
主要的问题就是

ls -t >a

这里也是通过写入文件的方式来解决该问题
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZYKMAEP8-1634311892684)(C:/Users/16229/AppData/Roaming/Typora/typora-user-images/image-20211015225719194.png)]
最后

sh a 即可
4位可控字符

基本上就是很变态的题目了

这边给个博客来了解了解

https://blog.csdn.net/nzjdsds/article/details/102873203

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值