XCTF Web 記錄(第二天)

2021-10-20 18:43:00 字數 2182 閱讀 5943

進去後什麼都沒有,掃目錄,得到 index.phps,訪問:

1.對id值進行url解碼

2.id值等於admin

因為瀏覽器本身會進行一次url解碼,這裡相當於進行了二次解碼,所以對admin進行兩次url編碼:

%2561%2564%256d%2569%256e

知識點:

url編碼:

url編碼就是其16進製制前新增%。例:hex(a)=61,url(a)=%61

那麼二次編碼,相當於對%進行一次url編碼;hex(%)=25,url(%)%25

phps:

phps檔案就是php的源**檔案,通常用於提供使用者(訪問者)檢視php**,因為使用者無法直接通過web瀏覽器看到php檔案的內容,所以需要用phps檔案代替。

class

xctf

?code=

簡單的反序列化。

payload:

o:4:

"xctf":1

:

並不成功:

要繞過__wakeup() .

方式:wakeup()漏洞就是與整個屬性個數值有關。當序列化字串表示物件屬性個數的值大於真實個數的屬性時就會跳過wakeup的執行。

所以,payload:

o:4:

"xctf":2

:

檔案上傳。

上傳php檔案時:

原理:客戶端前端驗證。

上傳格式檔案,抓包,修改字尾名為php即可。

<?php 

$text

=$_get

["text"];

$file

=$_get

["file"];

$password

=$_get

["password"];

if(isset

($text)&&

(file_get_contents

($text

,'r'

)===

"welcome to the zjctf"))

else

}else

?>

**審計,三個引數。

if

(isset

($text)&&

(file_get_contents

($text

,'r'

)===

"welcome to the zjctf"

))

需要給$text寫入welcome to the zjctf使用偽協議:

?text=data:

//text/plain,welcome to the zjctf

if

(preg_match

("/flag/"

,$file))

else}}

?>

對password的反序列化利用:

payload:

o:4:

"flag":1

:

最終payload:

?text=data:

//text/plain;base64,d2vsy29tzsb0byb0agugempjdgy=&file=useless.php&password=o:4:"flag":1:

知識點總結:

偽協議:

php偽協議總結

第二天git學習記錄

就是你在電腦裡能看到的目錄,放你所有的檔案需要版本控制的 工作區有乙個隱藏目錄.git,這個不算工作區,而是git的版本庫。git的版本庫里存了很多東西,其中最重要的就是稱為stage 或者叫index 的暫存區,還有git為我們自動建立的第乙個分支master,以及指向master的乙個指標叫he...

linux C學習記錄第二天

exit 退出當前賬號,返回上乙個賬號 su 切換使用者 普通使用者切換root需要加 sudo 獲取許可權 groupadd groupdel 看英文很容易分辮哪個是新增,哪個是刪除的 後面直接加需要新增的 組name 1,檢視使用者組資訊 cat etc group 例如這個組 gec x 10...

python學習記錄 第二天

序列型別包括 字串 列表和元組等。列表建立使用方括號或者list。元組建立使用圓括號或者tuple。列表和元組通用方法裡有個分片或切片操作slice,語法格式 start end step 作者提到step使用負數沒有意義,你確定?這倆結構和字串可是類似的,那就以字串為例,不要全部相信書本內容 a ...