命令注入(绕过过滤)

当遇到命令注入挑战且发现一些关键字符或命令被过滤时,如cat命令、空格、目录分隔符(/\)和运算符(如;, &&, ||),这增加了攻击的难度,但并非不可能克服。下面是一些绕过这些过滤的技术:

绕过cat命令过滤

  • 使用其他命令读取文件

    • tac命令可以反向读取文件,可以用作cat的替代品,但通常tac也会被过滤。
    • 使用moreless命令,它们也可以用来查看文件内容。
    • xxd命令可以以十六进制转储的形式显示文件的内容。
  • 使用bash内置命令

    • source.命令可以读取并执行脚本文件,这在某些情况下可以用来间接读取文件。
  • 使用管道和重定向

    • 如果管道符号|没有被过滤,可以尝试使用headtail与管道结合使用来读取文件的一部分。

绕过空格过滤

  • 使用URL编码:将空格编码为%20
  • 使用替代分隔符:如;|(如果这些符号没有被过滤)。
  • 使用环境变量:如${IFS}(Internal Field Separator)在Shell中可以表示空格。

绕过目录分隔符过滤

  • 使用. .:在某些情况下,. .可以被解析为目录分隔符。
  • 使用环境变量:如果PATHPWD等环境变量可用,可以尝试利用它们。
  • 使用软链接或硬链接:创建指向目标文件的链接,然后使用链接的路径。

绕过运算符过滤

  • 使用环境变量:如${IFS}可以用作分隔符。
  • 使用bash的特性:例如,bash&&||运算符可以被$'&\&'$'||'替代。
  • 使用管道|:如果管道没有被过滤,可以使用它来串接命令。

实际技巧:

  • 使用bash-c选项:如果bash命令本身没有被过滤,可以尝试使用bash -c "command"的形式来执行命令。
  • 利用eval函数:如果脚本语言如PHP或Perl中eval函数可用,可以构造一个字符串,使用eval函数来执行命令。
  • 使用十六进制或八进制码:如果某些字符被过滤,尝试使用其十六进制或八进制形式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

无极921

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值