壳注射 – 这是安全的?

壳注射 – 这是安全的?,第1张

概述壳注射 – 这是安全的?

我正在解决我在linux下使用firefox中的Flash性能不佳的问题。@H_301_1@

我想知道下面的代码是否安全。 input是不可信的,我觉得如果不消毒,可能是危险的。@H_301_1@

#!/bin/bash #in="vlc://www.youtube.com/watch?v=yVpbFMhOAwE" in=$1; out=`echo $in | sed -r 's/vlc://www.youtube.com/watch?v=([-_a-zA-Z0-9]*).*$/1/g'`; vlc "http://www.youtube.com/watch?v=$out";@H_301_1@

编辑1:基于扬·胡德克的评论,我已经到了这一步@H_301_1@

#!/bin/bash #in="vlc://www.youtube.com/watch?v=yVpbFMhOAwE" in=$1; if [ `expr "$in" : '^vlc://www.youtube.com/watch?v=[-_a-zA-Z0-9]*$'` -gt 0 ] then vlc "http${in:3}"; fi@H_301_1@

编辑2(可能是最后的):@H_301_1@

更清洁的方式来编写多个sed命令?@H_301_1@

Bash:在模式之后插入一个文件的内容到另一个文件中@H_301_1@

在Bashfunction里面的Cd@H_301_1@

linux Bash有一个do-while循环吗?@H_301_1@

Bash – 更正格式(sed?)@H_301_1@

#!/bin/bash #in="vlc://www.youtube.com/watch?v=yVpbFMhOAwE" in=$1; if expr "$in" : '^vlc://www.youtube.com/watch?v=[-_a-zA-Z0-9]*$' >/dev/null then vlc "http${in:3}"; fi@H_301_1@

bash不会执行'at -f foo.sh'命令,即使使用#!/ bin / bash shebang也是如此@H_301_1@

在纯bash中传递一个密码给ssh@H_301_1@

sh:2:1:未find – 将多个PHPparameter passing给bash脚本@H_301_1@

从Bash脚本显示Unix命令的确切输出@H_301_1@

如何在shell脚本中发送失败作业的电子邮件@H_301_1@

我不认为这个特定的脚本可以被实际利用来做任何邪恶的事情,但是只要vlc不会在一个错误的URL上做任何恶意的事情,从正确的YouTube主机开始,但包含有趣的东西。 因为消毒是完全无效的。@H_301_1@

有三个错误一起意味着几乎所有的东西都可以传递给vlc,并且可以使用它找到关于系统的一些信息:@H_301_1@

第一个问题是echo命令。 Echo是unix shell中最不规则的命令,在每个shell中表现得非常不同。 如果您需要将参数传递给未修改的命令的标准输入,请使用printf 。@H_301_1@

第二个问题是它的参数没有被引用(你仍然需要在命令替换中引用变量),所以它会经历分词和文件名生成(globbing)。 后者可能会被滥用以获取系统的一些信息。 只要命令只具有局部效应,这是毫无价值的,但在任何网络可观察的事物中都会有类似的错误。 另外一些shell(但不是bash)可能会允许来自文件名生成的一些副作用,在这种情况下会变得危险。@H_301_1@

最后,sed将只是返回$in的内容,当它不匹配,你直接传递给vlc比。 它在那里被正确引用,所以vlc不会将其解释为独立的URL或选项,只能作为一个有趣的,无效的URL。 所以这是不可能被利用,除非在vlc中使用一些严重的错误。@H_301_1@

我想你应该:@H_301_1@

使用带正确引号的参数的expr命令检查参数是否采用适当的格式。@H_301_1@

如果没有,则中止错误。@H_301_1@

因为您已经检查过前缀,并且以=结尾,所以不要仅仅使用${in#*=}删除前缀。@H_301_1@

在bash ,不需要使用expr :@H_301_1@

regex="^vlc://www.youtube.com/watch?v=[-_a-zA-Z0-9]*$" if [[ $in =~ $regex ]]; then@H_301_1@ 总结

以上是内存溢出为你收集整理的壳注射 – 这是安全的?全部内容,希望文章能够帮你解决壳注射 – 这是安全的?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1266942.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存