文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

攻防世界PHP2详细解答

2023-08-31 09:41

关注

攻防世界PHP2

一、

1.进入环境

看到一句话“Can you anthenticate to this website?”意思为:你能认证到这个网站吗?

2.burpsuite

用burpsuite抓包后也没有什么重要的信息o(一︿一+)o

我们可以进入index.php,但页面并没有变化。

于是输入index.php开始有东西出来了。

在这里可能看的不明显,我们直接回到页面在后面+/index.phps看看

给出了一下代码

3.解析代码

not allowed!

"); exit();}$_GET[id] = urldecode($_GET[id]);if($_GET[id] == "admin"){ echo "

Access granted!

"; echo "

Key: xxxxxxx

";}?>Can you anthenticate to this website?

只需一眼就可以看出这是一个 PHP 代码片段,用于检查用户是否具有访问网站的权限

  1. 第一行是 PHP 的开头标记,表示 PHP 代码的开始。

  1. 第二行检查通过 URL 传递的 'id' 参数的值是否等于 'admin'。如果它相等,则使用 'echo' 函数显示消息“not allowed!”并使用 'exit' 函数退出脚本。这是为了防止未经授权访问网站的管理员页面。

  1. 第六行使用 'urldecode' 函数解码 'id' 参数的 URL 编码值。

  1. 第七行检查 'id' 参数的解码值是否等于 'admin'。如果它相等,则使用 'echo' 函数显示消息“Access granted!”和一个密钥。

  1. 代码以 PHP 结束标记结束。

咱们的目的就是求出这个密钥了( ¯▽¯;)

4.但要注意的是这个函数urldecode

urldecode() 是一个 PHP 函数,用于解码 URL 编码字符串。在 URL 中,一些字符是有特殊含义的,例如空格、问号、等号等。如果需要在 URL 中使用这些字符,就需要对其进行编码,将其转换成特定的编码格式。例如空格会被编码成 %20。urldecode() 函数可以将这些编码格式的字符解码回原始字符,以便使用或显示。

在上面的 PHP 代码片段中,urldecode() 函数用于解码传递的 'id' 参数的 URL 编码值,以便后续判断 'id' 参数的值是否等于 'admin'。

所以直接输入下面是不行的。

http://61.147.171.105:64170/?id=admin

我们需要将admin进行转换,也就是进行url编码。

admin 的 URL 编码是 %61%64%6d%69%6e。

http://61.147.171.105:64170/?id=%61%64%6d%69%6e

还是不行滴!

因为浏览器本身会进行因此url解码,这里相当于进行两次url解码,应该是

http://61.147.171.105:64170/?id=%2561%2564%256d%2569256e

最后也是得到结果了!\( ^▽^ )/

5.知识总结:(✿◡‿◡)

1.后缀名为.phps的文件:phps即php source,phps文件就是php的源代码文件,通常用于提供给用户查看php代码,因为用户无法通过web浏览器直接查看到php文件的内容,所以需要用phps文件代替

2.在传入参数时,浏览器会对非ASCII编码进行一次urlencode,结果在代码执行时,相当于id还是admin,所以我们在传参时需要进行两次URL编码

3.在URL编码中, "%" 符号是一个特殊字符,它被用来表示接下来的两个字符是一个ASCII值的十六进制表示。因此,如果我们想要在URL中出现一个 "%" 符号本身,而不是它的特殊含义,那么我们需要对它进行编码。

4.对于 "admin" 字符串,在进行一次URL编码后,会得到 "%61%64%6d%69%6e" 这个字符串。如果我们想对其进行二次URL编码,可以使用 "%25" 来代替每个 "%" 符号。由于 "%25" 在URL编码中表示 "%" 符号,所以最终的二次URL编码结果为 "%2561%2564%256d%2569%256e"。

5.另一方面,如果我们将 "%25" 放在 "dmin" 前面,会得到 "%25dmin"。这个字符串也可以被解码为 "admin"。这是因为,在进行URL解码时,系统会先解码所有出现的 "%" 符号,然后再将剩下的字符串解码为原始字符。因此,"%25dmin" 和 "%2564%6d%69%6e" 都可以被解码为 "admin"。

来源地址:https://blog.csdn.net/m0_74047686/article/details/129494742

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯