javaweb 圖書管理系統完整代碼_看一名Java開發人員以紅隊思維五分鐘審計一套代碼(續)...

前言

上篇文章的發布引起了很多讀者的瀏覽,有很多讀者也催更希望讀到續集,作者也收獲到讀者的鼓勵,說明這條路線對大家有幫助,是有意義的。所以,今天作者將繼續闡述在審計Java代碼時的思路。

概述

上篇文章所講的SQL注入和中間件漏洞的審計,其實在大多數的情況下SQL注入是不會存在的,兩方面原因。注入存在的歷史太過悠久,以至于人盡皆知。2.大多數Java開發在入職面試時,考官都會將這個細節當作問題拋給開發者。所以要是靠這個漏洞,那大黑闊們估計是要餓死的。今天帶來的是越權漏洞的審計,這個漏洞能拿下百分之八十的JavaWeb代碼。

越權漏洞的前世今生

越權漏洞分為垂直越權和水平越權,在大多數場景中都存在水平越權,所以先跟讀者講述水平越權。

大多數功能當中,刪除功能一向是水平越權的“重災區”。開發在實現刪除功能時,前端將id號傳給后臺,后臺將此id的數據進行刪除。這么想確實沒什么問題,但是問題出就出在刪除上。原因在于,當后臺拿到id時不去判斷當前id是否屬于登錄用戶,直接將id數據進行刪除,這就導致了越權漏洞的產生。

下面上代碼

e2ba72d13af82b130a070e64cc07981d.pngbeed63292a1684dfbbec65541f565dd9.png

0faf45db6543df810672818b35ef81cf.png這一套刪除執行鏈中,并沒有對前端傳來的id進行任何操作,直接進行刪除。熟不知,在前端向后臺傳送id的過程中,id值被篡改修改成其他用戶下存在的記錄id,將其他用戶的記錄進行刪除,這就造成了水平越權的產生。

水平越權往往被定性為低微漏洞,這里作者就要替越權發聲了,從某種角度來講,如果滲透者發現了一個這樣的越權漏洞,完全可以編寫一個腳本。腳本的內容為循環請求這樣的接口,參數id為從1依次遞增。后臺執行這樣的刪除操作,可想而知,典型的刪庫。

FREEBUF平臺爸爸,某處存在此水平越權。發生地點不透露,但足以說明存在率(多有得罪)。

看到這里,想必很多讀者有知道了一個“獲得銀手鐲”的方法,作者建議遇到這種漏洞自己創建一個用戶進行測試即可,切勿使用這種方式擴大“戰果”。此假設只是從角度的問題證明越權的危害性。

防御:這么大的漏洞為什么這么多Java開發者不去修復,存在率竟如此之高?如果讀者是一名開發那么仔細閱讀下文(提醒)

原因有二:1.是后端開發者完全想不到在前端向后端傳值時會被篡改沒太過依賴前端。(所有的前端傳參必須零信任)2.如果后端拿到前端參數的id,再去查詢此id是否屬于當前用戶,意味著還需要走一條sql,無疑是對數據庫性能的又一次損耗,對開發成本的又一次增加。解鈴還須系鈴人,問題產生的關鍵就在于id,所以作者建議在生成id時不要采用從1開始依次遞增的方法,采用雪花算法生成id。下面上代碼

32090e80a0c0ffc122c05d25a6e0a446.png9cd4159dd4a4dfaa308da8fcdef35034.png01fa1f408a5a5aeb66072ec9385bf4b7.png這樣的id有什么好處?當滲透者暴力猜解數據庫進行刪庫操作時,此id無法被猜解,因為數據量太過龐大,此處不在贅述雪花算法。但是,此方法只能在某種程度上解決這樣的問題,如果滲透者真的頭鐵硬試,我們毫無辦法。(抬一手,留口飯吃)。

下面講垂直越權,垂直越權完全依靠前端頁面顯示作為用戶點擊的限制,挖掘此處漏洞滲透者必須擁有高權限賬號,還有一個低權限賬號。使用低權限賬號調用高權限才有的接口進行測試。

講到這里,作者覺得這個漏洞大家不必挖掘,因為能產生這種漏洞不是開發者技術和邏輯的問題。完全是開發者懶的問題,懶到不想寫代碼。而且垂直越權大多數開發者選用Apache Shiro和springSecurity框架進行權限判定。滲透者可以更關注shiro的兩個漏洞在垂直越權上。

這種漏洞除了開發者態度有問題基本不可能發生,如果滲透者發現過此類型的洞可以將開發者定性為“菜雞”,并且拉出去“砍死一百次”。

結尾

講到這里,關于JavaWeb審計的不需要代碼基礎的洞講完了,接下來的文章當中講述JavaWeb中的邏輯漏洞,這個區域才是Java漏洞的真正聚集地。但是意味著讀者需要一定的Java功底才能繼續跟進,如果讀者想繼續學習Java審計這一系列,請跟我一起學習Java開發吧~,我是小楊,感謝大家閱讀關注。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/395096.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/395096.shtml
英文地址,請注明出處:http://en.pswp.cn/news/395096.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

愛立信數據分析解決方案抓住物聯網發展機遇

愛立信在2016年1月6日至9日于美國拉斯維加斯舉辦的國際消費電子展(CES)上推出“用戶和物聯網數據分析”解決方案。該解決方案將能幫助運營商提高對用戶和物聯網終端的內部管理效率,同時探索跨越多個垂直領域的新型物聯網應用。 用戶和物聯網數…

Lua初學習 9-12 基礎

1:string 轉 number :tonumber(string) 2: number 轉 string :tostring(number) 3:string API: Lua中的字符串是不可變值,a "cocotang" string.gsub(a,"c","z") print(a) ----> cocotang 1獲得字符串長度:string.le…

iview下拉選

問題描述:創建場景,連續創建場景時,第一個場景創建成功后,第二次進入創建窗口,點擊測試任務下拉編輯只有上次創建成功的那一個任務候選,選中該任務中,關聯腳本也只有上次成功創建的唯一個候選下…

JAVA實現在面板中添加圖表_Java 創建PowerPoint圖表并為其添加趨勢線

圖表,是指將既得數據用圖形的方式表示出來。在前文中我們介紹過如何使用Java程序來為Excel文檔創建圖表的方法。本文將通過使用Java程序來演示如何創建PowerPoint圖表及為圖表添加趨勢線。趨勢線的運用能夠顯示數據的變化趨勢,同時能夠幫助預測數據的未來…

code warri_我參加了有史以來的第一屆Warri Tech宣傳活動。 這是我學到的。

code warriIn the city of Warri, Delta state of Nigeria, there is a saying that goes “Warri nor dey carry last, if e hard well well na draw”. This translates to “Warri is never behind in the scheme of things (events)”.在尼日利亞三角洲州的沃里市&#xff…

Socket編程小結

目錄: 什么是 socket?... 1 Internet 套接字的兩種類型... 1 網絡理論... 2 結構體... 2 本機轉換... 3 IP 地址和如何處理它們... 4 socket()函數... 4 bind()函數... 4 connect()程序... 5 listen()函數... 6 accept()函數... 6 send() and recv() 7 …

idea設置中文界面_《英雄聯盟手游》設置界面中文翻譯圖分享 外服漢化界面一覽...

導讀 英雄聯盟手游目前以及正式上線了,不過現在的話是沒有中文版的,只有外服,所有很多地方是看不懂的,也不明白的,這樣的話就需要翻譯了,具體要怎么設置會比較,相關的步驟是什么呢?下…

windows 2008 r2 系統默認80端口被系統占用的處理

--windows 2008 r2 系統默認80端口被系統占用的處理 --使用netstat 命令查看指定端口netstat -ano | findstr :80----如下所示:本地的80端口被進程為4的占用 TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4 TCP 192.168.1.207:60652 …

java實現封裝的三部_Java 封裝

Java 封裝在面向對象程式設計方法中,封裝(英語:Encapsulation)是指,一種將抽象性函式接口的實作細節部份包裝、隱藏起來的方法。封裝可以被認為是一個保護屏障,防止該類的代碼和數據被外部類定義的代碼隨機訪問。要訪問該類的代碼…

小豬短租超棒新房_freeCodeCamp講座簡介:您可以免費觀看的超棒技術講座

小豬短租超棒新房by Quincy Larson昆西拉爾森(Quincy Larson) freeCodeCamp講座簡介:您可以免費觀看的超棒技術講座 (Introducing freeCodeCamp Talks: awesome tech talks you can watch for free) Developers give thousands of tech talks every year at confer…

安卓10不支持qmc解碼_官宣:安卓10已發布!21款手機已適配,小米華為率先支持...

隨著今天凌晨谷歌 I/O 大會的召開,Android Q 也就是安卓10正式官宣,新版的安卓10加入了諸多新手勢,從 Home 鍵設計上看,安卓10 的新版手勢很大程度上有疑似借鑒 iOS 的手勢,底部一個長條,作為 Home 用來返回…

linux系統編程之進程(七):system()函數使用【轉】

本文轉載自:http://www.cnblogs.com/mickole/p/3187974.html 一,system()理解 功能:system()函數調用“/bin/sh -c command”執行特定的命令,阻塞當前進程直到command命令執行完畢 原型: int system(const char *comma…

安裝了最新版本的java 用友nc打不開_NC無法安裝客戶端插件,不能進入用友NC系統登陸界面...

NC無法安裝客戶端插件,不能進入用友NC系統登陸界面問題現象現象1:可以打開web界面,但無法進入登陸界面,一直停留在右圖所示界面。現象2:系統提示安全警告問題原因在使用IE首次登錄NC系統時,系統會自動下載N…

漢王云名片識別(SM)組件開發詳解

大家好,最近在DeviceOne平臺上做了一個漢王云名片識別的功能組件。下面把我開發過程給大家做一個分享,希望可以幫助到大家。 下面我把我的思路給大家講解一下。1.找到我要集成的sdk,也就是漢王云名片的sdk下載(android和ios&#…

[App Store Connect幫助]八、維護您的 App(4.2)查看評分與評論

您可以查看 App 的總評分或單個顧客評論。如有必要,您可以針對某條評論報告問題。 【注】顧客可以為您的 iOS 和 macOS App 評分并撰寫評論,但只能為 Apple TVOS App 評分。 必要職能:“帳戶持有人”職能、“管理”職能、“App 管理”職能、“…

visio studio json工具_《產品經理入門指南》彩蛋2:別技淫原型圖!你的Visio和Balsamiq Mockup入門了嗎?...

溫馨提示:如果你有關于產品經理方面的任何問題,歡迎關注我的微信公眾號與我互動。最新的免費系統的產品經理課程《老司機帶你做產品》已經推出,請關注微信公眾號:iamliuwenzhi很多產品新人剛開始工作時,喜歡一拿到需求…

漸進式web應用程序_通過漸進式Web應用程序吸引用戶并增強他們的體驗

漸進式web應用程序by Dave Gray戴夫格雷(Dave Gray) 通過漸進式Web應用程序吸引用戶并增強他們的體驗 (Engage your users and enhance their experience with Progressive Web Apps) 什么是漸進式Web應用程序? (What is a Progressive Web App?) A Progressive W…

mysql牽引例子_MySQL學習06(事務和索引)

事務概述什么是事務事務就是將一組SQL語句放在同一批次內去執行如果一個SQL語句出錯,則該批次內的所有SQL都將被取消執行MySQL事務處理只支持InnoDB和BDB數據表類型事務的ACID原則原子性(Atomic)整個事務中的所有操作,要么全部完成,要么全部不完成&#…

android操作系統 真的嗎_旋挖機培訓學校真的能學會嗎,旋挖鉆機到底有哪些操作系統...

旋挖機培訓學校真的能學會嗎添加微:yywyyc 旋挖鉆機到底有哪些操作系統【前言】很多使用旋挖鉆機或者想要了解旋挖鉆機的工程公司可能不是特別了解旋挖鉆機本身的系統以及部件,本篇文章針對旋挖鉆機的操作系統來給大家介紹一下,讓大家了…

WebAPI 2參數綁定方法

簡單類型參數 Example 1: Sending a simple parameter in the Url [RoutePrefix("api/values")] public class ValuesController : ApiController {// http://localhost:49407/api/values/example1?id2[Route("example1")][HttpGet]public string Get(int…