同样,今天一不小心就发现了- -#
先本地模拟下这个代码
解释下,第一句 echo出提交的内容 第二句 执行tracert命令并回显
既然是tracert 要跟踪的网址,那么可以不可以tracert 0.0.0.0 & net user 当然结果是不行的,因为浏览器会把&解析成&net user
这样就成了key(&user=xxx&pass=xxxxx)这样的,所以我们要对&进行编码%26
最后我们提交2.php?tracert=0.0.0.0%26net%20user
结果如图
这样如果权限足够大,足以提权服务器。
解决方法
既然网址里除了 . 就是- 那么我们就禁止除了.和-以外的任何特殊字符
我们在前面加个
$badword = '!|@|#|&|<|>'; if(preg_match("/$badword/i",$_GET["tracert"])){ exit ('bad request<hr>Safe121测试数据'); } 我们再来提交下摘自: 网络安全 技术博客(HdhCmsTestsafe121测试数据)
查看更多关于在线Tracert(Ping)的安全性 - 网站安全 - 自学php的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did11252