當前,隨著資訊網路的不斷發展,人們的資訊安全意識日益提升,資訊系統的安全防護措施也逐漸提高,通常都會在伺服器的互聯網邊界處部署防火牆來隔離內外網絡,僅將外部需要的伺服器連接埠暴露出來。採用這種措施可以大大的提高資訊系統安全等級,對於外部攻擊者來說,就像關閉了所有無關的通路,僅僅留下一個必要入口。
但在這種狀態下,仍然有一類安全性問題無法避免,那就是web漏洞。其形成原因是程式編寫時沒有對使用者的輸入字元進行嚴格的過濾,造成駭客可以精心建構一個惡意字串達到自己的目的。
那麼,要怎麼發現有沒有這類安全性問題呢?下面我們就來列舉幾個比較簡單的滲透技巧。
盡可能找到一切使用者可控並且能夠輸出在頁面程式碼中的地方,例如下面這些:URL的每一個參數、URL本身、表單、搜尋框常見的場景(包括有評論區、留言區、個人資訊、訂單資訊、搜尋框、目前目錄、圖片屬性等等),然後輸入代碼<script>alert(hello)</script> 。如果如下圖所示,那麼請注意了,你的系統很可能中了跨站腳本攻擊。
跨站腳本攻擊XSS惡意攻擊者會往Web頁面插入惡意Script程式碼,當使用者瀏覽該頁之時,嵌入其中Web裡面的Script程式碼就會被執行,從而達到惡意攻擊用戶的目的。
XSS攻擊針對的是使用者層面的攻擊!儲存型XSS,持久化,程式碼是儲存在伺服器中的,例如在個人資訊或發表文章等地方插入程式碼,如果沒有過濾或過濾不嚴,那麼這些程式碼將儲存到伺服器中,使用者存取該頁面的時候觸發代碼執行。這種XSS會比較危險,容易造成蠕蟲,偷cookie等等。
【針對的SQL語句:$sql="select*from admin where id=".$id;】
正常訪問:www.linuxtest.com/test2.php?id=1
查找注入點:
1、非正常存取www.linuxtest/test2.php?id=1',結果返回非正常頁面,說明可能有註入節點存在,繼續下面的驗證。
2、繼續非正常存取www.linuxtest/test2.php?id=1 and 1=1,結果回傳正常頁面。
3、繼續非正常存取www.linuxtest/test2.php?id=1 and 1=2,結果回傳非正常頁面,有註入節點,可以直接在id=1後面增加攻擊SQL語句。
【其他SQL1語句:$sql="select*from admin where id=$id";】
與上面相同
【其他SQL2語句:$sql= "select*from admin where id='{$id}'";】
此時存在註入點,但是我們必須消除單引號才能進行對應的攻擊SQL的插入,方法有:
增加(and '=)進行消除;例如:test2.php?id=1' union select 1,2,3 and '=;結果SQL為:select*from admin where id='1' union select 1 ,2,3 and '='
增加(and “=')、(union select 1,2,'3)等等。
由於系統環境不同,攻擊者可能造成的損害也不同,這主要由應用程式存取資料庫的安全權限決定。如果使用者的帳戶具有管理員或其他比較高級的權限,攻擊者就可能對資料庫的表執行各種他想要做的操作,包括添加、刪除或更新數據,甚至可能直接刪除表。
上面是直接手動操作,下面帶領大家見證burp_suite工具滲透。
當你需要發起某個請求時候,將攔截系統處於啟動狀態如下圖所示(以某網站範例):
#當你進入想要修改的頁面,竄改參數後點擊關閉,如果成功,頁面會返回你修改的參數,這就是攔截篡改漏洞。
結果:
大部分情況下,burpsuite都是透過篡改參數來完成漏洞攻擊的,可以看到網頁直接被篡改掉,這種情況不僅客戶體驗降低,同時會面臨營運風險,甚至法律風險,產生公關危機等一系列風險。
以上是如何進行Web滲透技巧分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!