ctf_攻防世界web进阶区_php2

文章目录

  • 题目描述
  • 题目分析
  • 总结
  • 参考资料

题目描述

ctf_攻防世界web进阶区_php2_第1张图片

题目分析

经过抓包、目录扫描都没有找到可利用信息,最终知道这题考察的是.phps文件,属于个人盲区

What is the file extension .PHPS? And what is it used for?
Answer:
PHP files will get interpreted by the Web server and PHP executable, and you will never see the code behind the PHP file. If you make the file extension .PHPS, a properly-configured server will output a color-formated version of the source instead of the HTML that would normally be generated.

.phps可以查看php源代码,于是有

ctf_攻防世界web进阶区_php2_第2张图片
分析源码,需要绕过"admin"===$_GET[id],再结合urldecode($_GET[id]),由于浏览器会自动url解码一次,我们可以通过两次hex编码(url编码在此基础上加%)即可,当然这里我们可以对admin全部编码,也可以部分编码,都是可以绕过的。

对a字母进行两次url编码
第一次url编码:a ==> %61 //a的ascii码是97,而97的十六进制是61,再加上一个%,最终得到%61
第二次url编码:%61 ==> %25%36%31 //分别对%,6,1进行url编码,%的ascii码是37,37的hex值是25,再加上一个%,最终就是%25,6的ascii码是54,54的hex值是36,加上一个%,最终就是%36,1同理

使用在线工具对a进行url编码的时候,还是会得到a,这时候就需要知道编码的规则
%25%36%31 == %2561  why?
Answer:
%2561解码一次得到 %61,因为url编码是%加上两位数字,所以先对%25进行url解码得到%本身,而61是数字用不解码,就得到%61 二次解码得到a
%25%36%31 第一次解码 %25==>%   %36==>6  %31==>1 于是解码一次得到 %61 解码第二次得到a

于是有
ctf_攻防世界web进阶区_php2_第3张图片

总结

1.了解.phps是什么
2.掌握url二次编码

参考资料

what is the file extention .phps?

你可能感兴趣的:(ctf解题)