1. 程式人生 > >用HTML+PHP寫一個留言板來進行XSS測試&學習 第三篇(簡單的過濾標籤功能實現&繞過)

用HTML+PHP寫一個留言板來進行XSS測試&學習 第三篇(簡單的過濾標籤功能實現&繞過)

這次我們要給前一篇文章寫的簡易“入庫”留言板新增一個功能,實現初級的過濾

留言板程式碼請看:http://blog.csdn.net/qq_38219257/article/details/69808812

因為是功能示範,暫時就寫一個過濾<script>標籤的簡單方法

這次用到了PHP中的 過濾器
filter_var  期中的引數FILTER_CALLBACK可以自定義陣列進行過濾,使用者可以自己建構函式,定義過濾規則

function convertScript($string) //自己構建一個函式,以字串作為形參
{
return str_replace("<script>", "", $string);//返回值中進行替換操作,將<script>
替換為空 } // fwrite($log,filter_var($_POST['user'], FILTER_CALLBACK, array("options"=>"convertScript"))."\r\n"); fwrite($log,filter_var($_POST['desc'], FILTER_CALLBACK, array("options"=>"convertScript"))."\r\n")

就我的理解,filter_var後面的 陣列進行了關聯這一過程,將前面的變數作形參傳給options關聯的convertscript(),取得返回值進行關聯。


把這段程式碼加到讀檔案操作的後面即可以達到過濾目的

那又該如何繞過呢?

因為不是迴圈檢測,所以它只會過濾一遍,我們可以構造<scr<script>ipt> 或者大小寫混合(甚至在這個例子中全用大寫就可以繞過)如 <ScrIpT>。

就是這些思路,沒有什麼難點,如果有什麼錯誤的地方懇請大家指出。。

下一篇試試寬位元組繞過環境的搭建吧,敬請期待。