參考: 2018護網杯-web部分題解 本文講解其中用到的相關知識點。
easy tornado
hint.txt
md5(cookie_secret + md5(filename))
要得到flag的filename已經提示,即現在隻要擷取tornado的cookie_secret就可以了
運用模闆注入:
http://49.4.78.81:30980/error?msg={{handler.settings}}
記憶:handler.settings存放cookie_secret 哦~
嗯嗯,因為:即使看
源碼目前我也無法看出是handler.settings...
easy laravel
- laravel:PHP開發架構
- SQL注入:
萌新練習網站: https://ringzer0team.com wp: https://xz.aliyun.com/t/2298
admin' union select 1,(select password from users limit 0,1),3,4,5#
limit 為偏移量
其他...正在研究中
2.拿管理者token
admin' union select 1,(select token from password_resets limit 1,1),3,4,5#
token:計算機身份認證中的臨時令牌
- 使用路徑重置密碼: http://49.4.78.81:31250/password/reset/1c9d0f377a75dd48abaa90dd7fa4eb35653da39561d6f9c33bdb14a8a0849616 reset/這裡是token
- PHP反序列化漏洞 PHP反序列化原理分析 1.serialize() 函數用于序列化對象或數組,并傳回一個字元串。
【護網杯】Web部分相關知識點easy tornadoeasy laravel
- 魔術方法 PHP16個魔術方法詳解
PHP以兩個下劃線__開頭的方法稱為魔術方法(Magic methods)
__construct()當一個對象建立時被調用
__destruct()當一個對象銷毀時被調用
__toString()當一個對象被當作一個字元串使用
__sleep() 在對象在被序列化之前運作
__wakeup将在序列化之後立即被調用
3.如果伺服器能夠接收我們反序列化過的字元串、并且未經過濾的把其中的變量直接放進這些魔術方法裡面的話,就容易造成很嚴重的漏洞
4.如何在不使用php函數unserialize()的前提下,觸發序列化呢?phar://
參考:
初探phar://利用條件:如file_exists(),fopen(),file_get_contents(),file()等檔案操作的函數。要有可用的魔術方法作為“跳闆”。檔案操作函數的參數可控,且:、/、phar等特殊字元沒有被過濾。
實作過程:...先見連結好嗎~
LTshop
- 條件競争 Web中的條件競争漏洞 用burp實作條件競争 解題詳細操作
條件競争:發生在多個線程同時通路同一個共享代碼、變量、檔案等沒有進行鎖操作或者同步操作的場景中。如果并發處理不當或相關操作邏輯順序設計的不合理時,将會導緻此類問題的發生。
實作:多線程通路,資料庫update一次的時間内update了多次,導緻資料出現錯誤
多線程通路,可以自己寫腳本,也可以用burp:多線程,null payloads
- 整形溢出:具體需要看《計算機組成原理》
但是這樣還不夠,發現辣條之王有填寫兌換數,嘗試整數溢出
因為最長為longlong,即存在2^64,又因為5包大辣條換一包辣條之王,故最多可換3689348814741910323包辣條之王,溢出再加一包,即為3689348814741910324包,輸入後溢出,成功獲得足夠數量的Flag