首页 > Web开发 > 详细

bugku-web(变量1)

时间:2019-10-11 15:22:23      阅读:69      评论:0      收藏:0      [点我收藏+]

记性不好,老忘事于是决定把做的题目记录一下

这是一个代码审计的题目

技术分享图片

 

需要传入有个args参数,通过eval来执行var_dump来打印一些东西。但是它打印的是$$args而不是$args。

对‘$$args‘的分析:

example:

1 <?php
2 $plan = ‘Binary‘;        //变量plan的值为‘Binary‘的字符串
3 $Binary = ‘handsome‘;    //再把变量plan的值设为一个变量的变量名,而这个变量的值为‘handsome‘
4 echo $$plan.‘</br>‘;     //打印$$plan,其实就相当于打印$[$plan]=$[Binary]=‘handsome‘
5 echo $Binary.‘</br>‘;    //打印$Binary,其结果为‘handsome‘和上一行的打印结果一样

有了这个例子,就可以操作了。传入的是args参数,而传入的参数将会被当作一个变量名并打印它的变量值。比如传入一个x。则有$args=x,而执行var_dump($$args)时相当于执行var_dump($x),而此时程序里没有x这个变量,所以就会返回一个NULL值显示在浏览器上,这变量没有意义。所以传入的参数得是一个有意义的变量,PHP恰好有这类似的东西,如$GLOBALS,$_GET,$POST...,$GLOBALS这个变量存储了所有的变量。所以传入参数‘args=GLOBALS‘,var_dump()将打印$GLOBALS,flag就在返回的结果中。

 

bugku-web(变量1)

原文:https://www.cnblogs.com/planBinary/p/11653594.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!