網站滲透測試安全檢測漏洞
最近滲透測試工作比較多沒有空閒的時間來寫文章,今天由我們Sine安全的滲透主管來普及一下java的安全測試基礎,很多客戶想要了解具體js的呼叫漏洞或提交playload的過程以及是如何拿到最高許可權和繞過登入等等執行命令漏洞之類的安全檢測方法。
4.4.1.1. 顯式原型和隱式原型
Java的原型分為顯式原型(explicit prototype property)和隱式原型(implicit prototype link)。
其中顯式原型指prototype,是函式的一個屬性,這個屬性是一個指標,指向一個物件,顯示修改物件的原型的屬性,只有函式才有該屬性。
隱式原型指Java中任意物件都有的內建屬性prototype。在ES5之前沒有標準的方法訪問這個內建屬性,但是大多數瀏覽器都支援通過 __proto__ 來訪問。ES5中有了對於這個內建屬性標準的Get方法 Object.getPrototypeOf() 。
隱式原型指向建立這個物件的函式(constructor)的prototype, __proto__ 指向的是當前物件的原型物件,而prototype指向的,是以當前函式作為建構函式構造出來的物件的原型物件。
顯式原型的作用用來實現基於原型的繼承與屬性的共享。隱式原型的用於構成原型鏈,同樣用於實現基於原型的繼承。舉個例子,當我們訪問obj這個物件中的x屬性時,如果在obj中找不到,那麼就會沿著 __proto__ 依次查詢。
Note: Object.prototype 這個物件是個例外,它的__proto__值為null
4.4.1.2. new 的過程
var Person = function(){};
var p = new Person();
new的過程拆分成以下三步:– var p={}; 初始化一個物件p – p.__proto__ = Person.prototype; – Person.call(p); 構造p,也可以稱之為初始化p
關鍵在於第二步,我們來證明一下:
var Person = function(){};
var p = new Person();
alert(p.__proto__ === Person.prototype);
這段程式碼會返回true。說明我們步驟2是正確的。
4.4.1.3. 示例
p是一個引用指向Person的物件。我們在Person的原型上定義了一個sayName方法和age屬性,當我們執行p.age時,會先在this的內部查詢(也就是建構函式內部),如果沒有找到然後再沿著原型鏈向上追溯。
這裡的向上追溯是怎麼向上的呢?這裡就要使用 __proto__ 屬性來連結到原型(也就是Person.prototype)進行查詢。最終在原型上找到了age屬性。
4.4.2. 沙箱逃逸
4.4.3. 反序列化
4.4.3.1. 簡介
Java本身並沒有反序列化的實現,但是一些庫如node-serialize、serialize-to-js等支援了反序列化功能。這些庫通常使用JSON形式來儲存資料,但是和原生函式JSON.parse、 JSON.stringify不同,這些庫支援任何物件的反序列化,特別是函式,如果使用不當,則可能會出現反序列化問題。
4.4.3.2. Payload構造
下面是一個最簡單的例子,首先獲得序列化後的輸出
上面執行後會返回
不過這段payload反序列化後並不會執行,但是在JS中支援立即呼叫的函式表示式(Immediately Invoked Function Expression),比如 (function () { /* code */ } ()); 這樣就會執行函式中的程式碼。那麼可以使用這種方法修改序列化後的字串來完成一次反序列化。最後的payload測試如下:
4.4.3.3. Payload構造 II
以上提到的是node-serialize這類反序列化庫的構造方式,還有一類庫如funcster,是使用直接拼接字串建構函式的方式來執行。
return "module.exports=(function(module,exports){return{" + entries + "};})();";
這種方式可以使用相應的閉合來構造payload。
4.4.4. 其他
4.4.4.1. 命令執行
Node.js中child_process.exec命令呼叫的是/bin/sh,故可以直接使用該命令執行shell
4.4.4.2. 反除錯技巧
- 函式重定義 console.log = function(a){}
- 定時斷點 setInterval(function(){debugger}, 1000);
Windows資訊收集
5.1. 資訊收集 – Windows
5.1.1. 基本命令
- 查詢所有計算機名稱 dsquery computer
- 檢視配置 systeminfo
- 檢視版本 ver
- 程式資訊 tasklist /svc
- 檢視所有環境變數 set
- 檢視計劃任務 schtasks /QUERY /fo LIST /v
- 檢視安裝驅動 DRIVERQUERY
5.1.2. 域資訊
- 獲取當前組的計算機名 net view
- 檢視所有域 net view /domain
- 檢視域中的使用者名稱 dsquery user
- 查詢域組名稱 net group /domain
- 查詢域管理員 net group "Domain Admins" /domain
- 檢視域控制器 net group "Domain controllers"
5.1.3. 使用者資訊
- 檢視使用者 net user
- 檢視線上使用者 qwinsta / query user
- 檢視當前計算機名,全名,使用者名稱,系統版本,工作 站域,登陸域 net config Workstation
5.1.4. 網路資訊
- 域控資訊 nltest /dclist:xx
- 內網網段資訊
- 網路卡資訊 ipconfig
- 外網出口
- ARP表 arp -a
- 路由表 route print
- 監聽的埠 netstat -ano
- 連線的埠
- 防火牆狀態及規則
- netsh firewall show config
- netsh firewall show state
- hosts檔案
5.1.5. 密碼資訊
- Windows RDP連線記錄
- 瀏覽器中儲存的賬號密碼
- 系統密碼管理器中的各種密碼
- 無人值守安裝檔案中的密碼資訊
- C:\sysprep.inf
- C:\sysprep\sysprep.xml C:\Windows\Panther\Unattend\Unattended.xml C:\Windows\Panther\Unattended.xml
5.1.6. 其他
檢視補丁安裝情況
- wmic qfe get Caption,Deion,HotFixID,InstalledOn
- 登錄檔資訊
- 安裝的監控軟體
- 安裝的防毒軟體,如果在想要檢測自己的網站或app等是否有漏洞以及安全風險問題,可以諮詢下專業的網站安全公司來處理解決,國內推薦Sinesafe,綠盟,啟明星辰等等都是比較不錯的。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31542418/viewspace-2665471/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 網站漏洞檢測 滲透測試檢測手法網站
- 滲透測試網站安全漏洞檢測大體方法網站
- 網站滲透測試安全檢測方案網站
- 網站安全測試之APP滲透測試漏洞網站APP
- 滲透測試對檔案包含漏洞網站檢測網站
- 滲透測試公司 對PHP網站安全後門檢測PHP網站
- 網站安全滲透測試檢測認證登入分析網站
- 如何學習網站漏洞滲透測試學習網站
- 網站漏洞滲透測試覆盤檢查結果分析網站
- 網站安全公司 滲透測試中的漏洞資訊蒐集網站
- APP安全測試 該如何滲透檢測APP存在的漏洞APP
- 網站安全滲透測試服務之discuz漏洞挖掘與利用網站
- 網站漏洞測試 檔案上傳漏洞的安全滲透與修復網站
- 滲透測試 網站安全測試行業問題分析網站行業
- beescms網站滲透測試網站
- 網站滲透測試漏洞分析程式碼架構網站架構
- 網站安全公司 滲透測試運營之路網站
- 網站安全滲透測試公司心得總結網站
- 網站安全評估滲透測試手法分析網站
- 網路安全滲透測試
- 邏輯注入漏洞滲透測試檢測辦法
- 網站安全維護對公司網站滲透測試剖析網站
- 滲透測試對網站漏洞修復執行命令重點檢查網站
- 滲透測試網站安全基礎點講解網站
- 多個角度分析滲透測試網站安全效能網站
- 滲透測試公司談網站安全評估方法網站
- 什麼是網站系統安全的滲透檢測?網站
- 網路安全滲透測試的型別!滲透測試入門教程型別
- 網站被攻擊滲透測試出漏洞怎麼辦網站
- 網站查詢漏洞滲透測試大體流程介紹網站
- 網站漏洞滲透測試行業該如何去學習網站行業
- 什麼是滲透測試?網站有必要進行滲透測試嗎?網站
- 網站滲透測試服務之人工安全防護網站
- 網站安全滲透測試該如何增加就業概率網站就業
- 企業網站安全滲透測試服務範圍網站
- 微信小程式之滲透測試、加固、安全檢測微信小程式
- 網站漏洞滲透測試服務內容詳情見解網站
- 從滲透測試到漏洞掃描 看我們如何對網站做安全防護網站