preg_match()繞過的問題總結


最近參加羊城杯,遇到了一道題本來的思路是繞過preg_match()函數讀取secret.php文件,然后從secret.php中給的函數構造pop鏈使用反序列化的知識點進行命令執行,從而得到flag

但是問題是第一步就出現了問題,繞過preg_match()就繞不過去記錄一下:
我搜索到的常用的繞過方法有:
1.數組繞過,即傳入的參數為數組

源代碼如下:

 

 

 效果:

 

 

成功繞過preg_match()

2.利用PCRE回溯次數限制繞過

源代碼:

 

 

如何繞過呢,讓回溯次數超過最大限制就可以使preg_match()函數返回false,從而繞過限制,中文的回溯次數在100萬次就會崩潰,這個回溯保護使PHP為了防止關於正則表達式的DDOS

結果:

POC:

 

 

 

 

成功繞過了preg_match()

3.換行符繞過
.不會匹配換行符

源代碼:

 

結果:

 

 成功繞過,Hacking attempt detected<br/><br/>沒有輸出

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM