无字母数字Webshell之进步篇
发布时间:2018-10-18 11:59:39 所属栏目:业界 来源:phithon
导读:前几天有同窗提出了一个题目,或许代码如下: ?php if(isset($_GET['code'])){ $code=$_GET['code']; if(strlen($code)35){ die(Long.); } if(preg_match(/[A-Za-z0-9_$]+/,$code)){ die(NO.); } eval($code); }else{ highlight_file(__FILE__); } 这个代
个中,glob支持用[^x]的要领来结构“这个位置不是字符x”。那么,我们用这个姿势干掉/bin/run-parts: 解除了第4个字符是-的文件,同样我们可以解除包括.的文件: 此刻就剩最后三个文件了。但我们要执行的文件如故排在最后,但我发明这三个文件名中都不包括非凡字符,那么这个要领好像行不通了。 继承阅读glob的辅佐,我发明另一个风趣的用法: 就跟正则表达式相同,glob支持操作[0-9]来暗示一个范畴。 我们再来看看之火线出也许滋扰我们的文件: 全部文件名都是小写,只有PHP天生的姑且文件包括大写字母。那么谜底就呼之欲出了,我们只要找到一个可以暗示“大写字母”的glob通配符,就能精准找到我们要执行的文件。 掀开ascii码表,可见大写字母位于@与[之间: 那么,我们可以操作[@-[]来暗示大写字母: 显然这一招是管用的。 结构POC,执行恣意呼吁 虽然,php天生姑且文件名是随机的,最后一个字符不必然是大写字母,不外多实行屡次也就行了。 最后,我传入的code为?>,发送数据包如下: 乐成执行恣意呼吁。 【编辑保举】
点赞 0 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |