无字母数字Webshell之提高篇
其中,glob支持用[^x]的方法来构造“这个位置不是字符x”。那么,我们用这个姿势干掉/bin/run-parts: 排除了第4个字符是-的文件,同样我们可以排除包含.的文件: 现在就剩最后三个文件了。但我们要执行的文件仍然排在最后,但我发现这三个文件名中都不包含特殊字符,那么这个方法似乎行不通了。 继续阅读glob的帮助,我发现另一个有趣的用法: 就跟正则表达式类似,glob支持利用[0-9]来表示一个范围。 我们再来看看之前列出可能干扰我们的文件: 所有文件名都是小写,只有PHP生成的临时文件包含大写字母。那么答案就呼之欲出了,我们只要找到一个可以表示“大写字母”的glob通配符,就能精准找到我们要执行的文件。 翻开ascii码表,可见大写字母位于@与[之间: 那么,我们可以利用[@-[]来表示大写字母: 显然这一招是管用的。 构造POC,执行任意命令 当然,php生成临时文件名是随机的,最后一个字符不一定是大写字母,不过多尝试几次也就行了。 最后,我传入的code为?>,发送数据包如下: 成功执行任意命令。 【编辑推荐】
点赞 0 (编辑:广西网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |