攻防世界-PHP2
打开实验环境:
实验准备,chrome (时间充裕准备:firefox、以及firefox下Hackbar插件)
这是我用的火狐hackbar插件;
这里提示要访问主站:(嗯,用了几个扫描目录的都没扫到,原来是放在 index.phps 里了)
phps文件就是php的源代码文件,通常用于提供给用户(访问者)直接通过Web浏览器查看php代码的内容。
因为用户无法直接通过Web浏览器“看到”php文件的内容,所以需要用phps文件代替。
phps是php的源代码文件,但是不能接受传参,为什么提到传参呢,看下图访问 index.phps:
看到,主目录(index.php)接受一个 id 的GET传参; 就是 ?id=xxx
分析:题目需要我传 一个 id 的变量 ,使 id === 'admin' ,使用urldecode解码后 ,id == 'admin' 满足这三条 就可以拿到 key 了。
对admin进行 url 编码 %61%64%6D%69%6E
提交的时候,要把 .phps 的 s 去掉 ,上面说了,index.phps不接受传参 ,提交玩发现不行。在 id === 'admin' 满足条件了,所以 返回 not allowed
为什么会这样呢? 原来 在 url 地址栏提交数据时,浏览器会自动进行一次urldecode解码 ;浏览器解码了 那id提交的就变会 admin 了,第一个判断拦截下来不奇怪;
这是 url 编码表里查到的,admin编码一次等于 %61%64%6D%69%6E ; 我再一次对 百分号 进行一次编码 : % 编码后为 %25
所以 %61%64%6D%69%6E 再url编码一次为 %2561%2564%256D%2569%256E ,提交就能拿到 KEY ;
提问:可以不让浏览器第一次的url解码吗?
答:可以,再火狐下用Hackbar插件就行 ,有图有真相。
这里仅URL加密了一次,用 %61%64%6D%69%6E 就拿到 KEY 了; 可以看到URL地址栏返回的就是 俩次加密的内容;