攻防世界PHP2_wp


此题主要考察点还是PHP代码简单审计,可以简要记录一下

打开界面后什么也没有,f12后也没有东西,我们尝试访问index.php.发现,还是没东西,其实到这里我用御剑扫了一下,还是没啥发现,卡住了真有够菜的,hhh,网上搜了一下,发现一个知识点:

可以使用php.s尝试查看php源文件

.phps后缀释义:


phps文件就是php的源代码文件。
通常用于提供给用户(访问者)查看php代码,因为用户无法直接通过Web浏览器看到php文件的内容,所以需要用phps文件代替

这样就可以看到了这里的源代码:

这里可以看到如果id=name就可以输出KEY应该就能够得到想要的信息,但第一段和第二段代码中

if("admin"===$_GET[id])    #如果成立则退出
if($_GET[id]=="admin")    #成立则输出KEY

这里尝试对”===”以及”==”进行构造来绕过第一个语句但发现好像不行,这样我们注意到urldecode($_GET[id])

尝试使用url编码进行绕过,但需要我们稍微了解一下url编码解码的流程:

  1. 浏览器在上传数据时,会对参数值进行一次解码(与php代码无关,是浏览器自身会解码一次)
  2. 在服务器中根据代码继续后续解码操作

所以如果我们对”admin”进行一次url编码:%61%64%6d%69%6e(注意,很多在线url编码一般保留字符不编码,我们需要选择对所有字符都编码才能得到想要的结果)

这样执行还是会输出”not allowed”

但只要我们再url编码一次就可以了%25%36%31%25%36%34%25%36%64%25%36%39%25%36%65

http://220.249.52.133:59362/?id=%25%36%31%25%36%34%25%36%64%25%36%39%25%36%65

这样就可以输出了:

就这?就这?这我都要看hint才能做出来,web真是点开一道题就是一个新的知识点,还是学的太少了啊,(╥╯^╰╥)


文章作者: 0xahh
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 0xahh !
评论
  目录