原始碼:
<?php
function is_php($data)
if(empty($_files))
$user_dir = 'data/' . md5($_server['remote_addr']);
$data = file_get_contents($_files['file']['tmp_name']);
if (is_php($data)) else
通過對原始碼分析,可知要求上傳檔案,且檔案內容要通過正則且能rce
正則:/<\?.*[(`;?>].*/is
指匹配<?
開頭的中間出現[(`;?>]
任一字元的不區分大小寫的,無視換行符的字串。即針對<?php ;
或<?php ?>
等語句。
如何繞過正則且能rce呢?
rerference: php利用pcre回溯次數限制繞過某些安全限制
php 為了防止正規表示式的拒絕服務攻擊(redos),給 pcre 設定了乙個回溯次數上限 pcre.backtrack_limit。我們可以通過 var_dump(ini_get(『pcre.backtrack_limit』));的方式檢視當前環境下的上限。回溯次數上限預設是 100 萬。那麼,假設我們的回溯次數超過了 100 萬,會出現什麼現象呢?preg_match 返回的非 1 和 0,而是 false。
故構建rce指令碼:
print(res.headers)得到flag
正則的回溯引用
q 將下面html片段中正確的標題標籤 到 及其包含的內容匹配出來 我是h1h1 我是divdiv 我是h2h2 我是spanspan 我是h3h3 我是錯誤的h3h4 我是h4h4 複製 上述這個問題的難點包括 必須匹配每個到不能將包含在兩個標題標籤內的標籤匹配到,如我是span 不能匹配格式不正...
最大團問題 回溯法
題目 對於給定的無向圖,找出他的最大團 分析 圖的乙個完全子圖就是乙個團,所以找最大團,通俗點講就是在乙個無向圖中找出乙個點數最多的完全圖 任意兩點之間均有邊相鄰 採用回溯法,對於解空間的子集樹,只有當前節點和所有已選的頂點都相連,才進入左子樹 而當 當前結點加上剩下節點數比最優節點的個數多時 才進...
利用遞迴實現迷宮回溯問題
在乙個8 8的矩陣中,四面都是牆,矩陣中有幾個點不能通過 假設有乙個小球,要到達指定的座標,求出小球走過的路徑。在這裡插入描述 1 圍牆,不能通過 2 目標點 3 已經走過,但是走不通4.策略逆時針找路,即按照 下 右 上 左的順序尋找5.實現思路手動設定起點,使用查詢策略遞迴尋找終點,走到一點,就...