當前位置:
首頁 > 最新 > 解密web黑科技告訴你黑客的一些「不為人知」的事情

解密web黑科技告訴你黑客的一些「不為人知」的事情

一個星期沒有寫文章了也是因為最近一周工作太忙了,今天是周五正好有時間自己總結了一下這周的工作。

首先給大家介紹一個開源項目:https://github.com/Arachni/arachni

從github上面可以看到arachni有1946顆星在web漏洞掃描的開源項目中評分已經是相當的高了。

Arachni提供:

穩定,高效,高性能的框架

Check,report並plugin允許開發人員輕鬆快速地創建和部署他們的組件,並對其施加最小限制,同時提供必要的基礎設施以實現其目標。此外,鼓勵他們在一個統一的框架下充分利用Ruby語言,這將提高他們的工作效率,而不會扼殺他們或使他們的任務複雜化。此外,該框架可用於任何其他Ruby庫,並導致全新掃描儀的開發或幫助您創建高度自定義的掃描/審計方案和/或腳本掃描。雖然框架的某些部分相當複雜,但您不必直接處理它們。從用戶或組件開發人員的角度看,一切都顯得簡單直接,同時提供強大功能,性能和靈活性。從簡單的命令行實用程序掃描器到直觀且用戶友好的Web界面和協作平台,Arachni遵循最少驚喜的原則,並為您提供大量反饋和指導。

簡單來說Arachni旨在自動檢測Web應用程序中的安全問題。它所期望的是目標網站的網址,過一段時間後它會向您顯示其結果。

Arachni的源碼我花了一個星期的時間把它讀完了,arachni的源碼是用Ruby語言開發的,Ruby一種簡單快捷的面向對象(面向對象程序設計)腳本語言,在20世紀90年代由日本人松本行弘(Yukihiro Matsumoto)開發,其實在沒有研究Arachni之前我從來沒有用過ruby語言所以讀arachni源碼的時候有些費力一邊研究arachni架構一邊學習Ruby的語法,其實這一個禮拜的辛苦付出收穫還是挺大的。

下面給大家介紹一些在ruby中比較特殊的用法:

Ruby中的::符號

Ruby中常量的路徑(作用域),類似與文件系統中的目錄,通過::進行分割和訪問,默認直接以::開頭(例: :: Y)表示變數路徑的根位置

load與require方法的異同

祖先鏈用於描述Ruby對象的繼承關係,因為類與模塊是父子關係,所以祖先鏈中也可以包含模塊,prepend與include分別可以向鏈中添加模塊,不同的是調用include方法,模塊會被插入祖先鏈,當前類的正上方,而prepend同樣是插入到祖先鏈,但位置其他卻在當前類的正下方,另外通過Class.ancestors可以查看當前的祖先鏈。

對象、類與模塊之間關係

動態調用方法

class MyClass

def my_method(my_arg)

my_arg * 2

end

end

obj = MyClass.new

obj.my_method(3) #=> 6

obj.send(:my_method, 3) #=> 6

Arachni在網上的資料特別少所以必須通過閱讀源碼來把握arachni的整體架構,通過對源碼的閱讀結合自己的理解畫了一幅arachni的源碼架構圖

arachni源碼中集成了一個無頭瀏覽器phantomjs

PhantomJS是一款帶JavaScript API的無頭WebKit腳本。它具有對各種Web標準的快速和本地支持:DOM處理,CSS選擇器,JSON,Canvas和SVG

在arachni中它是如何操作頁面的元素:

在arachni中它是如何操作插架的:

1.集成瀏覽器環境

Arachni包含一個集成的,真實的瀏覽器環境,以便為使用諸如HTML5,JavaScript,DOM操作,AJAX等技術的現代Web應用程序提供足夠的覆蓋。

除了監控vanilla DOM和JavaScript環境外,Arachni的瀏覽器還支持流行的框架,使記錄的數據更易於消化:

JQuery的

AngularJS

更多來...

實質上,這將Arachni轉變為DOM和JavaScript調試器,允許它監控DOM事件和JavaScript數據以及執行流程。因此,系統不僅可以觸發並識別基於DOM的問題,還會隨附關於當時頁面狀態的大量信息。

2.相關信息包括:

頁面DOM,如HTML代碼。有一個DOM轉換列表,用於將頁面狀態恢復到登錄狀態。作為HTML代碼的原始DOM(即導致頁面被記錄的動作之前)。用DOM轉換列表。數據流接收器 - 每個接收器都是一個JS方法,它接收到一個受污染的參數。該方法的父對象(例如:)DOMWindow。方法簽名(如:)decodeURIComponent()。

參數列表。在包含的對象中遞歸確定污點。方法源代碼。JS堆棧跟蹤。

執行流匯 - 每個匯是一個成功執行的JS有效負載,由安全檢查注入。包含一個JS堆棧跟蹤。

JavaScript堆棧軌跡包括:方法名稱。方法位置。方法源代碼。

參數列表。

從本質上講,您可以訪問與您最喜歡的調試器(例如FireBug)所提供的信息大致相同的信息,就好像您已經在適當的時間設置了一個斷點來識別問題一樣。

個人公眾號:對我笑一個


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 對我笑一個 的精彩文章:

TAG:對我笑一個 |