02-攻防世界PHP2

简介: 02-攻防世界PHP2

题目

authenticate:证明什么是真的

解题

观察题目可知,访问index.phps可能会有不一样的发现

http://61.147.171.105:51671/index.phps访问该链接,可以得到下面的界面

这里只显示出了部分代码,右键该界面,点击查看源代码,我们便可以查看到所有代码

这是一个 PHP 代码片段,用于检查用户是否具有访问网站的权限


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


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


第7行使用 'urldecode' 函数解码 'id' 参数的 URL 编码值,将解码后的数值赋值给GET[id]


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


代码以 PHP 结束标记结束。


咱们的目的就是求出这个密钥了


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


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


所以直接输入是不行的。http://61.147.171.105:51671/?id=admin 我们需要将admin进行转换,也就是进行url编码。可以借助burpsuit对admin进行url编码

浏览器解码一次,代码中解码一次,所以一共是解码两次,那么对应的就需要编码两次

因为浏览器本身会进行因此url解码,这里相当于进行两次url解码,所以我们要对admin进行两次编码,那么最后得到的应该是

http://61.147.171.105:51671/?id=%25%36%31%25%36%34%25%36%64%25%36%39%25%36%65

相关知识点1:php代码和url编码

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

相关文章
|
6月前
|
数据安全/隐私保护
攻防世界13-simple_php
攻防世界13-simple_php
|
3月前
|
存储 PHP 数据安全/隐私保护
攻防世界 Web_php_unserialize
攻防世界 Web_php_unserialize
58 0
|
6月前
|
PHP
攻防世界---Web_php_include
攻防世界---Web_php_include
|
6月前
|
安全 Linux PHP
【攻防世界】php_rce (ThinkPHP5)
【攻防世界】php_rce (ThinkPHP5)
|
6月前
|
PHP
【攻防世界】easyphp(PHP代码审计)
【攻防世界】easyphp(PHP代码审计)
|
6月前
|
安全 PHP
【攻防世界】file_include (PHP伪协议+过滤器)
【攻防世界】file_include (PHP伪协议+过滤器)
|
11月前
|
SQL 安全 PHP
攻防世界-Web_php_include
攻防世界-Web_php_include
57 0
|
安全 Unix Linux
[CTF/网络安全] 攻防世界 php_rce 解题详析
PHP REC ThinkPHP V5漏洞Payload 姿势 总结
380 0
|
存储 网络安全 PHP
[CTF/网络安全]攻防世界unserialize3解题详析及php序列化反序列化实例讲解
序列化是指将数据结构或对象转换为可传输或可存储的格式的过程。这通常需要将数据转换为字节流或其他形式的编码格式,以便能够在不同的系统和应用程序之间进行传输或存储。
373 0
|
网络安全 PHP
[CTF/网络安全] 攻防世界 simple_php 解题详析
PHP弱语言特性 姿势 参数a限制绕过 参数b限制绕过
234 0