1. 怎麼解決web越權漏洞
0x01 前言
我作為一個彩筆,很榮幸成為簽約作家團的一員,今天,就來講講越權,今天會舉三個例子,一個代碼審計,兩個黑盒測試。
0x02 什麼是越權
越權漏洞是Web應用程序中一種常見的安全漏洞。它的威脅在於一個賬戶即可控制全站用戶數據。當然這些數據僅限於存在漏洞功能對應的數據。越權漏洞的成因主要是因為開發人員在對數據進行增、刪、改、查詢時對客戶端請求的數據過分相信而遺漏了許可權的判定。所以測試越權就是和開發人員拼細心的過程。
0x03 越權的危害
越權的危害在於一個賬戶可以增、刪、改、查詢其他賬戶的數據。在補天漏洞響應平台,涉及到數據的越權,是高危漏洞。(挖付費的時候可以著重測一下,特別是商城站收貨地址那裡,很容易出問題)
0x04 實戰的案例(代碼審計篇)
我們來看看百樂CMS百家 V2.7微商城越權查看訂單漏洞,這是一個很經典的案例。
先定位到/system/shopwap/class/mobile/getorder.php
$orderid)); echo json_encode($orders);復制代碼
從代碼可知,獲取參數id,然後直接帶入到查詢中,沒有判斷當前用戶身份。這樣,我們來測試一下
0x07 挖掘越權漏洞要注意的事項
一.測試越權一般得有倆號。
二.對userid。orderid等等ID要敏感,一旦發現,就多測測。
三.某些廠商喜歡用純數字的MD5作為用戶的cookie,多注意發現。
四.多使用抓包工具,多分析數據包,多修改數據包。
五.多站在開發的角度去分析網站哪兒存在越權。
2. web 應用的常見 漏洞有哪些
web常見的幾個漏洞
1. sql注入
SQL注入攻擊是黑客對資料庫進行攻擊的常用手段之一。
2. XSS跨站點腳本
XSS是一種經常出現在web應用中的計算機安全漏洞,它允許惡意web用戶將代碼植入到提供給其它用戶使用的頁面中。
3. 緩沖區溢出
緩沖區溢出漏洞是指在程序試圖將數據放到及其內存中的某一個位置的時候,因為沒有足夠的空間就會發生緩沖區溢出的現象。
4. cookies修改
即使 Cookie 被竊取,卻因 Cookie 被隨機更新,且內容無規律性,攻擊者無法加以利用。另外利用了時間戳另一大好處就是防止 Cookie 篡改或重放。
5. 上傳漏洞
這個漏洞在DVBBS6.0時代被黑客們利用的最為猖獗,利用上傳漏洞可以直接得到WEBSHELL,危害等級超級高,現在的入侵中上傳漏洞也是常見的漏洞。
6. 命令行注入
所謂的命令行輸入就是webshell 了,拿到了許可權的黑客可以肆意妄為。
3. web安全要學什麼
Web安全的范圍實在太大,哪些先學,哪些後學,如果沒有系統的路線會降低大家效率,對於剛入門的同學們來說簡直就是「噩夢」。所以,這篇類似學習路線的文章,希望可以幫助剛入門的萌新們少走彎路。(文末附學習資料及工具領取)
首先我們來看看企業對Web安全工程師的崗位招聘需求是什麼?
1職位描述
對公司各類系統進行安全加固;
對公司網站、業務系統進行安全評估測試(黑盒、白盒測試)
對公司安全事件進行響應、清理後門、根據日誌分析攻擊途徑
安全技術研究,包括安全防範技術、黑客技術等;
跟蹤最新漏洞信息,進行業務產品的安全檢查。
熟悉Web滲透測試方法和攻防技術,包括SQL注入、XSS跨站、CSRF偽造請求、命令執行等OWSP TOP10 安全漏洞與防禦;
熟悉Linux、Windows不同平台的滲透測試,對網路安全、系統安全、應用安全有深入理解和自己的認識;
熟悉國內外安全工具,包括Kali、Linux、Metasploit、Nessus、Namp、AWVS、Burp等;
對Web安全整體有深刻理解,有一定漏洞分析和挖掘能力;
2崗位要求
根據崗位技能需求,再來制定我們的學習路徑,如下:
一、Web安全學習路徑
01 HTTP基礎
只有搞明白Web是什麼,我們才能對Web安全進行深入研究,所以你必須了解HTTP,了解了HTTP,你就會明白安全術語的「輸入輸出」。黑客通過輸入提交「特殊數據」,特殊數據在數據流的每個層處理,如果某個層沒處理好,在輸出的時候,就會出現相應層的安全問題。關於HTTP,你必須要弄明白以下知識:
HTTP/HTTPS特點、工作流程
HTTP協議(請求篇、響應篇)
了解HTML、Javascript
Get/Post區別
Cookie/Session是什麼?
02 了解如下專業術語的意思
Webshell
菜刀
0day
SQL注入
上傳漏洞
XSS
CSRF
一句話木馬
......
03 專業黑客工具使用
熟悉如何滲透測試安全工具,掌握這些工具能大大提高你在工作的中的效率。
Vmware安裝
Windows/kali虛擬機安裝
Phpstudy、LAMP環境搭建漏洞靶場
Java、Python環境安裝
子域名工具 Sublist3r
Sqlmap
Burpsuite
Nmap
W3af
Nessus
Appscan
AWVS
04 XSS
要研究 XSS 首先了解同源策略 ,Javascript 也要好好學習一下 ,以及HTML實體 HTML實體的10 或16進制還有Javascript 的8進制和16進制編碼,最終掌握以下幾種類型的XSS:
反射型 XSS:可用於釣魚、引流、配合其他漏洞,如 CSRF 等。
存儲型 XSS:攻擊范圍廣,流量傳播大,可配合其他漏洞。
DOM 型 XSS:配合,長度大小不受限制 。
05 SQL注入
所謂SQL注入,就是通過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字元串,最終達到欺騙伺服器執行惡意的SQL命令。你需要了解以下知識:
SQL 注入漏洞原理
SQL 注入漏洞對於數據安全的影響
SQL 注入漏洞的方法
常見資料庫的 SQL 查詢語法
MSSQL,MYSQL,ORACLE 資料庫的注入方法
SQL 注入漏洞的類型:數字型注入 、字元型注入、搜索注入 、盲注(sleep注入) 、Sqlmap使用、寬位元組注入
SQL 注入漏洞修復和防範方法
一些 SQL 注入漏洞檢測工具的使用方法
06 文件上傳漏洞
了解下開源編輯器上傳都有哪些漏洞,如何繞過系統檢測上傳一句話木馬、WAF如何查殺Webshell,你必須要掌握的一些技能點:
1.客戶端檢測繞過(JS 檢測)
2.伺服器檢測繞過(目錄路徑檢測)
3.黑名單檢測
4.危險解析繞過攻擊
5..htaccess 文件
6.解析調用/漏洞繞過
7.白名單檢測
8.解析調用/漏洞繞過
9.服務端檢測繞過-文件內容檢測
10.Apache 解析漏洞
11.IIS 解析漏洞
12.Nginx 解析漏洞
07 文件包含漏洞
去學習下
include() include_once() require() require_once() fopen() readfile()
這些php函數是如何產生文件包含漏洞, 本地包含與遠程包含的區別,以及利用文件包含時的一些技巧如:截斷 /偽url/超長字元截斷等 。
08 命令執行漏洞
PHP代碼中常見的代碼執行函數有:
eval(), assert(), preg_replace(), call_user_func(), call_user_func_array(),create_function(), array_map()等。
了解這些函數的作用然後些搞清楚如何造成的代碼執行漏洞。
09 CSRF 跨站點請求
為什麼會造成CSRF,GET型與POST型CSRF 的區別, 如何防禦使用 Token防止CSRF?
010 邏輯漏洞
了解以下幾類邏輯漏洞原理、危害及學會利用這幾類漏洞:
信息轟炸、支付邏輯漏洞、任意密碼修改、越權訪問、條件競爭、任意注冊、任意登錄、順序執行缺陷、URL跳轉漏洞.
011 XEE(XML外部實體注入)
當允許XML引入外部實體時,通過構造惡意內容,可以導致文件讀取、命令執行、內網探測等危害。
012 SSRF
了解SSRF的原理,以及SSRF的危害。
SSRF能做什麼?當我們在進行Web滲透的時候是無法訪問目標的內部網路的,那麼這個時候就用到了SSRF漏洞,利用外網存在SSRF的Web站點可以獲取如下信息。
1.可以對外網、伺服器所在內網、本地進行埠掃描,獲取一些服務的banner信息;
2.攻擊運行在內網或本地的應用程序(比如溢出);
3.對內網Web應用進行指紋識別,通過訪問默認文件實現;
4.攻擊內外網的Web應用,主要是使用get參數就可以實現的攻擊(比如struts2,sqli等);
5.利用file協議讀取本地文件等。
如果上述漏洞原理掌握的都差不多那麼你就算入門Web安全了。
如果看了上面你還不知道具體如何學習?可參考合天網安實驗室Web安全工程師崗位培養路徑學習:網頁鏈接
4. 怎麼禁止webshell訪問硬碟的許可權
防範這些WEBSHELL,首先是設置伺服器的許可權,禁止他們越權訪問東西。伺服器許可權設置可以參考沉睡不醒整理的IIS FAQ ( http://fox.he100.com/showart.asp?art_id=121&cat_id=1),我這里就直接引用原文的內容了9.如何讓iis的最小ntfs許可權運行? 依次做下面的工作: a.選取整個硬碟: system:完全控制 administrator:完全控制 (允許將來自父系的可繼承性許可權傳播給對象) b.program filescommon files: everyone:讀取及運行 列出文件目錄 讀取 (允許將來自父系的可繼承性許可權傳播給對象) c.inetpubwwwroot: iusr_machinename:讀取及運行 列出文件目錄 讀取 (允許將來自父系的可繼承性許可權傳播給對象) e.winntsystem32: 選擇除inetsrv和centsrv以外的所有目錄, 去除「允許將來自父系的可繼承性許可權傳播給對象」選框,復制。 f.winnt: 選擇除了downloaded program files、help、iis temporary compressed files、 offline web pages、system32、tasks、temp、web以外的所有目錄 去除「允許將來自父系的可繼承性許可權傳播給對象」選框,復制。 g.winnt: everyone:讀取及運行 列出文件目錄 讀取 (允許將來自父系的可繼承性許可權傳播給對象) h.winnttemp:(允許訪問資料庫並顯示在asp頁面上) everyone:修改 (允許將來自父系的可繼承性許可權傳播給對象) 再單獨對cmd.exe net.exe net1.exe ping.exe netstat.exe ftp.exetftp.exe telnet.exe設置為只允許administrators組訪問,這樣就可以防範通過Serv-U的本地提升許可權漏洞來運行這些關鍵的程序了,再刪除cacls.exe這個程序,防止有人通過命令行來修改許可權,呵呵。 再來去掉一些ASP WEBSHELL需要使用的一些組件,這些組件其實普通的虛擬主機用戶也是用不上的。 很多防範ASP木馬的文章都提到要刪除FileSystemObject組件,但刪除了這個組件後,很多ASP的程序可能會運行不了,其實只要做好了前面的工作,FileSystemObject組件能操作的,只能是自己目錄下的文件,也就構成不了什麼威脅了! 現在看來,還比較有威脅的組件就是Shell.Application和Wscript.Shell這兩個組件了,Shell.Application可以對文件進行一些操作,還可以執行程序,但不能帶參數,而Wscript.Shell可以操作注冊表和執行DOS命令。 防範Wscript.Shell組件的方法: 可以通過修改注冊表,將此組件改名。 HKEY_CLASSES_ROOTWScript.Shell及HKEY_CLASSES_ROOTWScript.Shell.1 改名為其它的名字,如:改為WScript.Shell_ChangeName或WScript.Shell.1_ChangeName自己以後調用的時候使用這個就可以正常調用此組件了 也要將clsid值也改一下 HKEY_CLASSES_ROOTWScript.ShellCLSID項目的值 HKEY_CLASSES_ROOTWScript.Shell.1CLSID項目的值 也可以將其刪除,來防止此類木馬的危害。 防範Shell.Application組件的方法: 可以通過修改注冊表,將此組件改名。 HKEY_CLASSES_ROOTShell.Application 及 HKEY_CLASSES_ROOTShell.Application.1 改名為其它的名字,如:改為Shell.Application_ChangeName或Shell.Application.1_ChangeName 自己以後調用的時候使用這個就可以正常調用此組件了。 也要將clsid值也改一下 HKEY_CLASSES_ROOTShell.ApplicationCLSID項目的值 HKEY_CLASSES_ROOTShell.ApplicationCLSID項目的值 也可以將其刪除,來防止此類木馬的危害。 還可以用現在絕大多數的虛擬主機都禁用了 ASP 的標准組件:FileSystemObject,因為這個組件為 ASP 提供了強大的文件系統訪問能力,可以對伺服器硬碟上的任何文件進行讀、寫、復制、刪除、改名等操作(當然,這是指在使用默認設置的 Windows NT / 2000 下才能做到)。但是禁止此組件後,引起的後果就是所有利用這個組件的 ASP 將無法運行,無法滿足客戶的需求。 如何既允許 FileSystemObject 組件,又不影響伺服器的安全性(即:不同虛擬主機用戶之間不能使用該組件讀寫別人的文件)呢?這里介紹本人在實驗中獲得的一種方法,下文以 Windows 2000 Server 為例來說明。 在伺服器上打開資源管理器,用滑鼠右鍵點擊各個硬碟分區或卷的盤符,在彈出菜單中選擇「屬性」,選擇「安全」選項卡,此時就可以看到有哪些帳號可以訪問這個分區(卷)及訪問許可權。默認安裝後,出現的是「Everyone」具有完全控制的許可權。點「添加」,將「Administrators」、「Backup Operators」、「Power Users」、「Users」等幾個組添加進去,並給予「完全控制」或相應的許可權,注意,不要給「Guests」組、「IUSR_機器名」這幾個帳號任何許可權。然後將「Everyone」組從列表中刪除,這樣,就只有授權的組和用戶才能訪問此硬碟分區了,而 ASP 執行時,是以「IUSR_機器名」的身份訪問硬碟的,這里沒給該用戶帳號許可權,ASP 也就不能讀寫硬碟上的文件了。 下面要做的就是給每個虛擬主機用戶設置一個單獨的用戶帳號,然後再給每個帳號分配一個允許其完全控制的目錄。 如下圖所示,打開「計算機管理」→「本地用戶和組」→「用戶」,在右欄中點擊滑鼠右鍵,在彈出的菜單中選擇「新用戶」: 在彈出的「新用戶」對話框中根據實際需要輸入「用戶名」、「全名」、「描述」、「密碼」、「確認密碼」,並將「用戶下次登錄時須更改密碼」前的對號去掉,選中「用戶不能更改密碼」和「密碼永不過期」。本例是給第一虛擬主機的用戶建立一個匿名訪問 Internet 信息服務的內置帳號「IUSR_VHOST1」,即:所有客戶端使用 http://xxx.xxx.xxxx/訪問此虛擬主機時,都是以這個身份來訪問的。輸入完成後點「創建」即可。可以根據實際需要,創建多個用戶,創建完畢後點「關閉」:現在新建立的用戶已經出現在帳號列表中了,在列表中雙擊該帳號,以便進一步進行設置: 在彈出的「IUSR_VHOST1」(即剛才創建的新帳號)屬性對話框中點「隸屬於」選項卡: 剛建立的帳號默認是屬於「Users」組,選中該組,點「刪除」: 現在出現的是如下圖所示,此時再點「添加」: 在彈出的「選擇 組」對話框中找到「Guests」,點「添加」,此組就會出現在下方的文本框中,然後點「確定」: 出現的就是如下圖所示的內容,點「確定」關閉此對話框: 打開「Internet 信息服務」,開始對虛擬主機進行設置,本例中的以對「第一虛擬主機」設置為例進行說明,右擊該主機名,在彈出的菜單中選擇「屬性」: 彈出一個「第一虛擬主機 屬性」的對話框,從對話框中可以看到該虛擬主機用戶的使用的是「F:VHOST1」這個文件夾: 暫時先不管剛才的「第一虛擬主機 屬性」對話框,切換到「資源管理器」,找到「F:VHOST1」這個文件夾,右擊,選「屬性」→「安全」選項卡,此時可以看到該文件夾的默認安全設置是「Everyone」完全控制(視不同情況顯示的內容不完全一樣),首先將最將下的「允許將來自父系的可繼承許可權傳播給該對象」前面的對號去掉~~
5. 越權訪問是不是被動攻擊
咨詢記錄 · 回答於2021-10-16
6. 越權訪問網站數據違反什麼法律
非法獲取計算機信息系統數據罪。
4月12日,一則華為員工利用公司系統Bug越權訪問機密數據被判刑的消息登上微博熱搜!
這則消息大致情況為,華為員工易某調離崗位後未清理ERP登陸信息,利用bug越權訪問,將所獲得數據透露給華為供應商、上市公司金信諾獲利,最終被判犯非法獲取計算機信息系統數據罪,判處有期徒刑一年,並處罰金人民幣二萬元;並向易某追繳違法所得共計人民幣23437.6元,依法予以沒收,上繳國庫。
7. web防火牆功能有哪些
盜鏈防盜鏈編輯WEB應用防火牆通過實現URL級別的訪問控制,對客戶端請求進行檢測,如果發現圖片、文件等資源信息的HTTP請求來自於其它網站,則阻止盜鏈請求,節省因盜用資源鏈接而消耗的帶寬和性能
8. 如何進行Web滲透測試
什麼是滲透測試?
滲透測試,是滲透測試工程師完全模擬黑客可能使用的攻擊技術和漏洞發現技術,對目標網路、主機、應用的安全作深入的探測,發現系統最脆弱的環節。
如何進行Web滲透測試?
完整web滲透測試框架當需要測試的web應用數以千計,就有必要建立一套完整的安全測試框架,流程的最高目標是要保證交付給客戶的安全測試服務質量。
1、立項:項目建立,時間安排,人力分配,目標制定,廠商介面人確定;
系統分析&威脅分析:針對具體的web應用,分析系統架構、使用的組件、對外提供的介面等,以STRIDE為威脅模型進行對應的安全威脅分析,輸出安全威脅分析表,重點關注top3威脅;
制定測試用例:根據威脅分析的結果制定對應的測試用例,測試用例按照模板輸出,具備可執行性;
測試執行&漏洞挖掘:測試用例執行&發散測試,挖掘對應的安全問題or漏洞;
問題修復&回歸測試:指導客戶應用開發方修復安全問題or漏洞,並進行回歸測試,確保安全問題or漏洞得到修復,並且沒有引入新的安全問題;
項目總結評審:項目過程總結,輸出文檔評審,相關文檔歸檔。
2、Web應用的滲透測試流程
主要分為3個階段,分別是:信息收集→漏洞發現→漏洞利用,下面仔細分析一下各個階段流程:
一、信息收集
在信息收集階段,我們需要盡量多的收集關於目標web應用的各種信息,比如:腳本語言的類型、伺服器的類型、目錄的結構、使用的開源軟體、資料庫類型、所有鏈接頁面,用到的框架等
腳本語言的類型:常見的腳本語言的類型包括:php、asp、aspx、jsp等
測試方法:
1 爬取網站所有鏈接,查看後綴
2 直接訪問一個不存在頁面後面加不同的後綴測試
3 查看robots.txt,查看後綴
伺服器的類型:常見的web伺服器包括:apache、tomcat、IIS、ngnix等
測試方法:
1 查看header,判斷伺服器類型
2 根據報錯信息判斷
3 根據默認頁面判斷
目錄的結構:了解更多的目錄,可能發現更多的弱點,如:目錄瀏覽、代碼泄漏等。
測試方法
1 使用字典枚舉目錄
2 使用爬蟲爬取整個網站,或者使用google等搜索引擎獲取
3 查看robots.txt是否泄漏
使用的開源軟體:我們如果知道了目標使用的開源軟體,我們可以查找相關的軟體的漏洞直接對網站進行測試。
測試方法
指紋識別(網路上有很多開源的指紋識別工具)
資料庫類型:對於不同的資料庫有不同的測試方法。
測試方法
1 使應用程序報錯,查看報錯信息
2 掃描伺服器的資料庫埠(沒做NAT且防火牆不過濾時有效)
所有鏈接頁面:這個跟前面的獲取目錄結構類似,但是這個不只是獲取網站的所有功能頁面,有時候還可以獲取到管理員備份的源碼。
測試方法
1 使用字典枚舉頁面
2 使用爬蟲爬取整個網站,或者使用google等搜索引擎獲取
3 查看robots.txt是否泄漏
用到的框架:很多網站都利用開源的框架來快速開發網站,所以收集網站的框架信息也是非常關鍵的。
測試方法
指紋識別(網路上有很多開源的指紋識別工具)
二、漏洞發現
在這個階段我們在做測試的時候要對症下葯,不能盲目的去掃描,首先要確定目標應用是否使用的是公開的開源軟體,開源框架等、然後在做深一度的漏洞掃描。
關於開源軟體的漏洞發現
開源的軟體:常見的開源軟體有wordpress、phpbb、dedecms等
開源的框架:常見的開源框架有Struts2、 Spring MVC、ThinkPHP等
中間件伺服器:常見的中間件伺服器有jboss、tomcat、Weblogic等
資料庫服務:常見的資料庫服務mssql、mysql、oracle、redis、sybase、MongoDB、DB2等
對於開源軟體的測試方法
1 通過指紋識別軟體判斷開源軟體的版本信息,針對不同的版本信息去開放的漏洞資料庫查找相應版本的漏洞進行測試
2 對於默認的後台登錄頁、資料庫服務埠認證等入口可以進行簡單的暴力破解、默認口令嘗試等操作
3 使用開源的漏洞發現工具對其進行漏洞掃描,如:WPScan
關於自主開發的應用
手動測試:這個階段,我們需要手工測試所有與用戶交互的功能,比如:留言、登入、下單、退出、退貨、付款等操作
軟體掃描:使用免費的軟體掃描,如:appscan、wvs、netsparker,burp等
可能存在的漏洞
Owasp關鍵點
代碼安全之上傳文件
代碼安全之文件包含
代碼安全之SSRF
邏輯漏洞之密碼重置
邏輯漏洞之支付漏洞
邏輯漏洞之越權訪問
平台安全之中間件安全
三、漏洞利用
針對不同的弱點有不同的漏洞利用方式,需要的知識點也比較多。一般這個階段包括兩種方式,一種是手工測試,一種是工具測試
手工測試
手工測試是通過客戶端或伺服器訪問目標服務,手工向目標程序發送特殊的數據,包括有效的和無效的輸入,觀察目標的狀態、對各種輸入的反應,根據結果來發現問題的漏洞檢測技術。手工測試不需要額外的輔助工具,可由測試者獨立完成,實現起來比較簡單。但這種方法高度依賴於測試者,需要測試者對目標比較了解。手工測試可用於Web應用程序、瀏覽器及其他需要用戶交互的程序。
這種方式對於有特殊過濾等操作,或者網路上沒有成型的利用工具的時候可以使用。
工具測試
網路上有很多好用的免費利用工具,比如針對sql注入的sqlmap、針對軟體漏洞的matesploit等。