寫在前面:php
過狗相關的資料網上也是有不少,因此在我接下來的文章中,可能觀點或者舉例可能會與網上部分雷同,或者表述不夠全面。數據庫
可是我只能說,我所傳達給你們的信息,是我目前所掌握或者瞭解的,不能保證全部人都會有收穫,可是我的水平有限,可能您以爲文章水平太低,或者並沒有太大養分。可是跳出文章自己,不管何種技術,重在交流,分享與總結。安全
另外,但願年輕人不要有太多戾氣,更多的是須要保持一個謙遜態度對待技術,尤爲是這個浮躁的安全界。服務器
以上是個人開場白(沒辦法,這是個人一向風格)tcp
寫php後門連載的目的。函數
但願你們可以暫緩日站的腳步,靜下心來想想,咱們在用菜刀作一些除(sang)暴(jin)安(tian)良(liang)的事的時候,php作了些什麼,安全狗又蜷縮在門後目擊了些什麼。post
其實我更願意傳授安全之道,而非滲透之術。對象
參考過網上不少種已有的php後門的寫法,總之思路各類奇葩與新奇,可是衡量一個優秀的php後門並非單單的看代碼多少,過狗怎麼樣,而是一種基於實際場景的一種變通,因此,php後門這是一門藝術。blog
因此當我在菜刀中雙擊鏈接的時候到底發生了什麼,安全狗又是如何發現後門並攔截的?字符串
php後門原理很簡單,當咱們鏈接時,實際上咱們會向php文件post數據,這個數據的內容爲咱們須要php去執行的代碼,當php獲取到數據並執行後,將返回一個response。
那麼waf可以識別到什麼層次?
其實waf最多獲取到tcp數據,也就是說,能夠獲取到咱們所post的數據,與服務器所返回的數據,至於php執行命令的過程,用了什麼對象,走了什麼函數,大部分waf是沒法得知的,只能檢測敏感字符的提交與返回,與特徵查殺。
因此即便是eavl()這個最原始的函數php如何去執行,waf是無論的,可是實際狀況你可能還沒到那一步,後門就被和諧了。
由於在此以前waf確定要對後門文件進行特徵分析,這關過了,纔到數據層,最後纔到返回層,那麼接下來第二章與第三章將從後門構造與數據提交角度來探討過狗的方式。
因爲waf軟件衆多,防禦機制不盡相同,個人一系列文章所有以安全狗爲例。
首先,後門寫入的方式有不少,好比程序自己的move函數,遠程包含,數據庫導出等等方式,在這裏就不詳細展開了,
在後門寫入過程當中,waf首先會對文件的格式進行一個黑白名單檢測,如一概不容許php文件上傳。
若是上傳這一步能夠過,那麼接下來就是對上傳的文件內容進行被動查殺。
然後門特徵的查殺通常在後門上傳的過程與訪問的過程,waf會使用相關的正則與代碼預編譯來判斷是否爲危險代碼。
之前還常常有用字符串疊加或者加註釋來躲避字符串匹配,可是如今很難單純靠這種方式來繞過了。
當咱們的代碼自己能夠過狗,加工post數據後門執行也沒有問題後,最後就是WAF對返回的敏感信息進行檢測與過濾了。
除此以外WAF可能會對特殊上傳的文件進行權限控制,例如沒法執行某些命令等等。
理論篇其實自己並無太多的東西可說,更多的是但願你們對於WAF有個初步的認識,不要盲(qiang)目(xing)過狗,濫用菜刀。
那麼下面兩篇文章會分別從後門構造篇與數據傳輸篇來闡述過狗的前因後果。
其實狗狗仍是很可耐的額。
文章轉自漏洞人生