Mark語法說明
Markdown文件 NOTE: This is Traditional Chinese Edition Document of Markdown Syntax. If you are seeking...
2018, Dec 08 — 9 minute readMarkdown文件 NOTE: This is Traditional Chinese Edition Document of Markdown Syntax. If you are seeking...
2018, Dec 08 — 9 minute read使用MicrosoftStore 安裝 Ubuntu 子系統 Windows10 組建大於 14393時 可安裝 Ubuntu 子系統 查看組建版本 開始 -> 設定 ->...
2018, Dec 06 — 1 minute read啟動指令 systemctl start elasticsearch systemctl enable logstash systemctl start kibana kibana 檔案路徑 /usr/share/kibana/ config /etc/kibana...
2018, Dec 06 — 1 minute read在開發者使用file_put_contents寫入文件的時候,有的情況下會用字符串匹配的方式攔截如"<"、">"、"?"等字符,導致我們無法寫入webshell。 file_put_contents函數第二個參數支持傳入陣列,用戶傳入的陣列將被拼接成一個字符串寫入文件。陣列因為類型不同導致無法使用字符串匹配來檢測,進而利用這種方式繞過了黑名單。 file_put_contents特性 查看PHP文檔可以發現: 其第二個參數允許傳入一個陣列 ,如果是陣列的話,將被連接成字符串再進行寫入。 file_put_contents($filename, $array); 可以等同於如下程式碼 file_put_contents($filename, implode('', $array)) 特性利用 在開發者使用file_put_contents寫入文件的時候,有的情況下會用字符串匹配的方式攔截如"<"、">"、"?"等字符,導致我們無法寫入webshell:...
2018, Dec 05 — 1 minute read部分網站對上傳的文件內容進行檢查,如果發現有”<?php”則判斷為webshell。這種情況下,我們可以通過不同的PHP標籤來繞過上傳的內容檢查。 可用的PHP標籤有: <?php phpinfo(); ?> <? phpinfo(); ?> 在開啟了short_open_tag後即可使用,無版本限制,在PHP5.3及以後默認開啟。 <?=phpinfo()?> 在PHP5.4前,開啟了short_open_tag後即可使用;在PHP5.4及以後,任何情況(包括short_open_tag=off)下都支援。 <% phpinfo(); %> 在開啟了asp_tags後即可使用,默認不開啟,PHP7.0及以後移除了這種方式。...
2018, Dec 03 — 1 minute readPHP是一門弱類型語言,在使用”==”進行變量比較的時候,會先進行類型轉換,再進行比較操作。即使比較的是兩個字符串,如果二者滿足”科學計數法”的表達方法,也會先轉換成數字再進行比較。 比如: var_dump("0e1234" == "0e5678"); 其返回結果是true。 在比較md5時,如果目標密碼的md5值恰好是”0e”+數字,將可以出現密碼繞過漏洞。 Wordpress曾出現過一個Cookie偽造漏洞:http://www.freebuf.com/column/155922.html,原因即為哈希比較的時候由於該原因,我們可以通過爆破的方式,來嘗試構造出”0e”+數字這樣的哈希值,最後繞過Cookie檢查,進而登錄後台。 <?php if (isset($_GET['Username']) && isset($_GET['password'])) { $logined...
2018, Dec 02 — 1 minute read在PHP < 5.4.7以前,preg_replace的第一個參數可以利用\0進行截斷,並將正則模式修改為e。 眾所周知,e模式的正則支持執行代碼,此時將可構造一個任意代碼執行漏洞。 比如如下代碼: <?php $tag = $_GET['tag']; $pattern = "|<{$tag}>(.*?)</{$tag}>|i"; $data = preg_replace($pattern,...
2018, Dec 02 — 1 minute read有時候目標網站存在任意文件上傳漏洞,但操作執行完成後即刻刪除,導致我們的webshell無法保留在服務器上。這種情況多存在於一些有緩存文件、臨時文件的邏輯中,在實戰裡經常遇到。 Linux下,php的文件寫入與移動刪除等操作中,由於對於路徑的處理存在差異,在有上述情況存在時,我們可以通過傳入文件名為shell.php/.的文件,繞過刪除函數 常見代碼如下: <?php $filename = __DIR__ . '/temp/' . $_POST['filename']; file_put_contents($filename,$_POST['data']); // ...執行做一些操作 unlink($filename);...
2018, Dec 02 — 1 minute read資料來源 filter_var是一組PHP中過濾、檢測用戶輸入的方法,其中開發者通常利用filter_var($email, FILTER_VALIDATE_EMAIL)來過濾用戶輸入的信箱。 RFC 3696規定信箱local part部分可以用雙引號包裹,雙引號內即可填入任意字符。 我們可以利用RFC 3696,傳入”aaa’aaa”@example.com,即可保留單引號,並通過filter_var的檢測,最終觸發SQL注入漏洞。 這個點早在當初PHPMailer的CVE-2016-10033提到過。 RFC 3696規定,信箱地址分為local part和domain part兩部分。 local part中包含特殊字符,需要如下處理:...
2018, Dec 01 — 2 minute read啟動Regedit 路徑 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp 更改DWORD值PortNumber,把數值3389改為想要的Port
2018, Nov 26 — 1 minute read