PHP2详细解析,(响应码,url编码,御剑)

标题1:打开之后各种手段都尝试,抓包,源码为协议等等,结果还是不出现、。然后就想到用到最近刚

下载的工具御剑来扫一下目录, 发现御剑依靠的是字典进行扫描

其实这个index.phps也是自己添加的字典有限,所以还是学习用一下dirsearch把!!!

看见了index.phps,然后url访问一下,爆出了源码

 感觉不太完整,ctrl+u查看源代码,

<?php
if("admin"===$_GET[id]) {               //这是一次admin 和输入id的比较
  echo("<p>not allowed!</p>");          //如果正确则会直接进行exit,直接退出
  exit();                               //所以第一次比较 id 不能等于admin
}

$_GET[id] = urldecode($_GET[id]);       //然后对输入的id进行解码
if($_GET[id] == "admin")                 //然后与admin进行比较现在应该为相等然后输出flag
{
  echo "<p>Access granted!</p>";
  echo "<p>Key: xxxxxxx </p>";
}
?>
 
Can you anthenticate to this website?
//划重点你以为只进行了一次url解码,但是其实只要在url进行?在url中有不是ASCII的编码就会自动进行一次解码, 所以一共进行了俩次解码!所以只需要对admin其中一个字母进行二次编码,或者全部也一样。

然后就直接对admin中的a进行两次url编码即可。

标题2:但理论这样,实践也很难,毕竟小白吗,搜了好久urlencode是进行url编码的函数,但是它对字母和数字是不可以的,字母数字是看ascii然后进行十六进制,比如a的ascii编码为97,十六进制是61所以第一次url编码,就是%61第二次就可凭借了

 urldecode这个函数是进行url解码操作,

然后还有最后一个坑,就是必须在index.php后进行url编码,因为index.phps只是源代码。

 因为用到了御剑,所以需要对一些常用的http响应码有一定的了解

比如:

1xx:表示请求已被接受,需要继续处理。一般情况下,因为http/1.0版本中没有此类型,所以服务器避免发送此类响应码,除非实验。
2xx:请求已被服务器理解接受。
3xx:需要重新定下。例如跳转。
4xx:请求错误。例如刚才提到的404。
5xx:服务器错误。 例如微信服务光缆坏了。
100(继续)请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。

202(已接受)服务器已接受请求,但尚未处理

303(查看其他位置)请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。

404(未找到)服务器无法根据客户端的请求找到资源(网页)

502(错误网关)服务器作为网关或代理,从上游服务器收到无效响应。

504(网关超时)服务器作为网关或代理,但是没有及时从上游服务器收到请求。

这是几个常用的,如果想更全推荐这篇博客:HTTP 响应码大全_一起努力啊啊啊啊的博客-CSDN博客_http响应码

做了这一道题,了解了很多知识,加油!

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值