加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

无字母数字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:

无字母数字Webshell之进步篇

解除了第4个字符是-的文件,同样我们可以解除包括.的文件:

无字母数字Webshell之进步篇

此刻就剩最后三个文件了。但我们要执行的文件如故排在最后,但我发明这三个文件名中都不包括非凡字符,那么这个要领好像行不通了。

继承阅读glob的辅佐,我发明另一个风趣的用法:

无字母数字Webshell之进步篇

就跟正则表达式相同,glob支持操作[0-9]来暗示一个范畴。

我们再来看看之火线出也许滋扰我们的文件:

无字母数字Webshell之进步篇

全部文件名都是小写,只有PHP天生的姑且文件包括大写字母。那么谜底就呼之欲出了,我们只要找到一个可以暗示“大写字母”的glob通配符,就能精准找到我们要执行的文件。

掀开ascii码表,可见大写字母位于@与[之间:

无字母数字Webshell之进步篇

那么,我们可以操作[@-[]来暗示大写字母:

无字母数字Webshell之进步篇

显然这一招是管用的。

结构POC,执行恣意呼吁

虽然,php天生姑且文件名是随机的,最后一个字符不必然是大写字母,不外多实行屡次也就行了。

最后,我传入的code为?>,发送数据包如下:

无字母数字Webshell之进步篇

乐成执行恣意呼吁。

【编辑保举】

  1. JavaScript、PHP、Python等5款主流编程说话爆安详裂痕
  2. 浅谈Web安详验证码
  3. CSRF进攻与防止,Web安详的第一防地(源码,拭魅战,5分钟科普文)
  4. 你不知道这10个Web安详裂痕,就别说本身是黑客
  5. 浅谈PHP安详类型
【责任编辑:赵宁宁 TEL:(010)68476606】
点赞 0

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读