導航:首頁 > 編程語言 > javaxss

javaxss

發布時間:2023-05-24 09:39:48

java服務介面怎麼避免xss注入攻擊

過濾特定符號

publicstaticStringguolv(Stringa){
a=a.replaceAll("%22","");
a=a.replaceAll("%27","");
a=a.replaceAll("%3E","");
a=a.replaceAll("%3e","");
a=a.replaceAll("%3C","");
a=a.replaceAll("%3c","");
a=a.replaceAll("<","");
a=a.replaceAll(">","");
a=a.replaceAll(""","");
a=a.replaceAll("'","");
a=a.replaceAll("\+","");
a=a.replaceAll("\(","");
a=a.replaceAll("\)","");
a=a.replaceAll("and","");
a=a.replaceAll("or","");
a=a.replaceAll("1=1","");
returna;
}

㈡ 【快學springboot】15、SpringBoot過濾XSS腳本攻擊

XSS攻擊全稱跨站腳本攻擊,是為不和層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆,故將跨站腳本攻擊縮寫為XSS,XSS是一種在web應用中的計算機安全漏洞,它允許惡意web用戶將代碼植入到提供給其它用戶使用的頁面中。

簡而言之,就是作惡用戶通過表單提交一些前端代碼,如果不做處理的話,這些前端代碼將會在展示的時候被瀏覽器執行。

解決XSS攻擊,可以通過後端對輸入的數據做過濾或者轉義,使XSS攻擊代喚型消碼失效。

對於過濾XSS腳本的代碼,通過搜索引擎可以搜索到很多,但似乎都不是那麼全面。基本上都是只能過濾querystring(表單類型)類型的入參,而不能和知過濾json類型的入參。其實,在現在的開發中,更多的是使用json類型做數據交互。下面就直接貼代碼了:

這里重寫了兩個方法:getParameter和getParameterValues,getParameter方法是直接通過request獲得querystring類型的入參調用的方法。如果是通過springMVC註解類型來獲得參數的話,走的是getParameterValues的方法。大家可以通過列印一個輸出來驗證一下。

StringEscapeUtils.escapeHtml4這個方法來自Apache的工具類,maven坐標如下:

過濾的代碼寫完了,下面就是在一個filter中應用該代碼。

過濾表單類型的代碼已經完成(xssObjectMapper這個是後面過濾json類型才用到的)。下面來實現過濾json類型的代碼:

代碼如下:

這里是通過修改SpringMVC的json序列化來達到過濾xss的目的的。其實也可以通過第一種方法,重寫getInputStream方法來實現,這里我就不做演示了(通過json類型傳參會走getInputStream方法,通過重寫該方法列印輸出可以證明)。

TestController.java

下面通過postman測試下效果:

可以看到,js代碼已經經租笑過轉義。轉義過後的代碼,即使前端讀取過去了,也不會被瀏覽器執行的。

㈢ Struct2+Spring 架構JavaWeb項目,出現xss跨站腳本攻擊漏洞解決方案

沒用到富文本的話可以用spring里的HtmlUtils.htmlEscape(string str)來對parameter轉碼。是用filter還是其他方式都可以

㈣ 什麼是XSS攻擊

什麼是XSS攻擊XSS又叫CSS (Cross Site Script) ,跨站腳本攻擊。它指的是惡意攻擊者往Web頁面里插入惡意html代碼,當用戶瀏覽該頁之時,嵌入其中Web裡面的html代碼會被執行,從而達到惡意攻擊用戶的特殊目的。XSS屬於被動式的攻擊,因為其被動且不好利用,所以許多人常忽略其危害性。而本文主要講的是利用XSS得到目標伺服器的shell。技術雖然是老技術,但是其思路希望對大家有幫助。 [編輯本段]如何尋找XSS漏洞就個人而言,我把XSS攻擊分成兩類,一類是來自內部的攻擊,主要指的是利用程序自身的漏洞,構造跨站語句,如:dvbbs的showerror.asp存在的跨站漏洞。另一類則是來來自外部的攻擊,主要指的自己構造XSS跨站漏洞網頁或者尋找非目標機以外的有跨站漏洞的網頁。如當我們要滲透一個站點,我們自己構造一個有跨站漏洞的網頁,然後構造跨站語句,通過結合其它技術,如社會工程學等,欺騙目標伺服器的管理員打開。
然後利用下面的技術得到一個shell. [編輯本段]如何利用傳統的跨站利用方式一般都是攻擊者先構造一個跨站網頁,然後在另一空間里放一個收集cookie的頁面,接著結合其它技術讓用戶打開跨站頁面以盜取用戶的cookie,以便進一步的攻擊。個人認為這種方式太過於落後,對於弊端大家可能都知道,因為即便你收集到了cookie你也未必能進一步滲透進去,多數的cookie裡面的密碼都是經過加密的,如果想要cookie欺騙的話,同樣也要受到其它的條件的限約。而本文提出的另一種思路,則從一定程度上解決上述的問題。對於個人而言,比較成熟的方法是通過跨站構造一個表單,表單的內容則為利用程序的備份功能或者加管理員等功能得到一個高許可權。下面我將詳細的介紹這種技術。 [編輯本段]來自內部的跨站攻擊尋找跨站漏洞
如果有代碼的話比較好辦,我們主要看代碼里對用戶輸入的地方和變數有沒有做長度和對」〈」,」〉」,」;」,」』」等字元是否做過濾。還有要注意的是對於標簽的閉合,像測試QQ群跨站漏洞的時候,你在標題處輸入〈script〉alert(『test』)〈/script〉,代碼是不會被執行的,因為在源代碼里,有其它的標簽未閉合,如少了一個〈/script〉,這個時候,你只要閉合一個〈/script〉,代碼就會執行,如:你在標題處輸入〈/script〉〈script〉alert(『test』)〈/script〉,這樣就可以彈出一個test的框。
如何利用
我先以BBSXP為例,過程已做成動畫,詳情可見光碟中的動畫。我舉BBSXP中其中兩個比較好用的跨站漏洞點為例.
a.先注冊一個普通用戶,我這里注冊的用戶是linzi.然後我們在個人簽名里寫入:
c.然後發個貼子,可以結合其它技術欺騙管理員瀏覽發的貼子。
d.因為是測試,所以我們以管理員身份登陸,然後打開貼子,我們會發現,linzi已經變成了社區區長工,如圖一所示
除此之外我們只要在個人簽名里輸入
同樣發個貼子等,只要管理員打開了,就會加了一個擴展名為asp (有空格)的上傳擴展,這個時候,你只要上傳一個newmm.asp (有空格)就可以得到一個shell.
上面的攻擊多多少少有點局限性,雖然可以得到shell,但是隱蔽性不太好,因為簽名
處受到了長度的限制,不能超過255個字元。我們可以結合flash跨站實現更為隱蔽的
攻擊,對於flash木馬的製作,下面見哥們豐初的介紹。
再利用如下:
修改一下個人頭像的url,輸入代碼如下:
再接著欺騙管理員打開你的資料或者瀏覽你的貼子,當管理員打開後,會在後台自動加個php擴展名的後輟,因為bbsxp在個人頭像url里過濾了空格,%,所以我們只能加個不包括空格的其它擴展,當然你也可以加個shtml的擴展,有了它你就可以用來查看源代碼,然後進一步攻擊。 [編輯本段]來自外部的跨站攻擊有的時候,當我們對於目標程序找不到可以利用的跨站點,這個時候我們可以利用可以從外部入手,利用我們要拿下的是它的論壇,論壇的安全性做的很好,但其留言板卻存在跨站漏洞,這個時候我們可以在留言板里寫入跨站語句,跨站語句為以表單的方式向論壇提交提升許可權的語句,如上面的bbsxp加asp 擴展的語句。當然我們可利用後台的備份功能直接得到一個shell。
例:先上傳一個文件linzi.txt,內容如下:
〈body onload="javascript:document.forms[0].submit()"〉〈form
action=" http://127.0.0.1/bbsxp/admin_fso.asp?menu=bakbf" method="post"〉〈input value="database/bbsxp.mdb" name="yl" 〉〈input value="database/shit.asp" name="bf" 〉〈/body〉〈/html〉
上面的代碼是把論壇的資料庫備份為shit.asp,留言板存在跨站點如下:
http://127.0.0.1/bbsxp/page2.asp?username=
我們構造備份跨站語句如下:
http://127.0.0.1/bbsxp/page2.asp?username=%3C%62%6F%64%79%20%6F%6E%6C%6F%61%64%3D%22%6A%61%76%61%73%63%72%69%70%74%3A%64%6F%63%75%6D%65%6E%74%2E%66%6F%72%6D%73%5B%30%5D%2E%73%75%62%6D%69%74%28%29%22%3E%3C%66%6F%72%6D%20%61%63%74%69%6F%6E%3D%22%68%74%74%70%3A%2F%2F%31%32%37%2E%30%2E%30%2E%31%2F%62%62%73%78%70%2F%61%64%6D%69%6E%5F%66%73%6F%2E%61%73%70%3F%6D%65%6E%75%3D%62%61%6B%62%66%22%20%6D%65%74%68%6F%64%3D%22%70%6F%73%74%22%3E%3C%69%6E%70%75%74%20%76%61%6C%75%65%3D%22%64%61%74%61%62%61%73%65%2F%62%62%73%78%70%2E%6D%64%62%22%20%6E%61%6D%65%3D%22%79%6C%22%20%3E%3C%69%6E%70%75%74%20%76%61%6C%75%65%3D%22%64%61%74%61%62%61%73%65%2F%73%68%69%74%2E%61%73%70%22%20%6E%61%6D%65%3D%22%62%66%22%20%3E%3C%2F%62%6F%64%79%3E%3C%2F%68%74%6D%6C%3E
或者構造跨站語句,利用iframe打開一個0大小的linzi.txt。
當管理員打開後,會自動備份得到一個shell. [編輯本段]XSS與其它技術的結合從上面的實例,我們可以知道,如何欺騙管理打開是一個很重要的步驟,對於欺騙打開,除了社會工程學外,我們可以結合其它的技術,如sql injection.當我們滲透一個網站之時,主站mssql注入漏洞,許可權為public,這個時候我們利用update構造跨站語句,如用iframe打開一個上面的備份得到shell的跨站語句等,同樣,我們可以在社會工程學時,利用QQ的其它跨站漏洞等等。
總是對於欺騙也是一門藝術,具體怎麼利用,大家就發揮自己的想像力吧!
好一個欺騙也是一門藝術,不管是在生活中還是在網路中。生活中難免有些事情不能講真話,這時採用適當的方法使得我們的假話當作真話講,這就靠欺騙的藝術了。

㈤ java的框架(比如struts2)對於xss攻擊、sql注入等黑客方式有防禦么

框架本身並不具有這些功能。
防止xss,sql等的攻擊大部分需遲搏要程序員自己注野豎意。
sql注入本身就是sql語句寫法的漏洞導致。
xss攻擊頌旦大的防禦還是需要對非法字元串進行判斷過濾。

㈥ SpringBoot 防止SQL注入、XSS攻擊、CSRF/CROS惡意訪問

一、SQL 注入問題


SQL 注入即是指 web 應用程序對用戶輸入數據的合法性沒有判斷或過濾不嚴,攻擊者可以在 web 應用程序中事先定義好的查詢語句的結尾上添加額外的 SQL 語句,在管理員不知情的情況下實現非法操作,以此來實現欺騙資料庫伺服器執行非授權的任意查詢,從而進一老逗步得到相應的數據信息。

簡單來說,就是將大部分 SQL 語句當參數傳入系統中,從而獲取系統中的數據。下面簡單舉例說明

系統中有這樣一條信息 SQL 語句執行,分頁查詢所有用戶,每頁查詢 20 條,並且根據指定欄位進行排序,也就是說排序欄位也是參數傳遞過來的

SQL 注入問題分析:

這樣很簡單的一句話 SQL,就可以把系統搞炸掉,這種方式可以實現刪庫跑路

以上語句會把整個 test 資料庫所有內容都刪掉

盡量用預編譯機制,少用字元串拼接的方式傳參,它是 sql 注入問題的根源。

有些特殊字元,比如:%作為 like 語句中的參數時,要對其進行轉義處理。

需要對所有的異常情況進行捕獲,切記介面直接返回異常信息,因為有些異常信息中包含了 sql 信息,包括:庫名,表名,欄位名等。攻擊者拿著這些信息,就能通過 sql 注入隨心所欲地攻擊你的資料庫了。目前比較主流的做法是,有個專門的網關服務,它統一暴露對外介面。用戶請求介面時先經過它,再由它將請求轉發給業務服務。這樣做的好處是:能統一封裝返回數侍御賣據的返回體,並且如果出現異常,能返回統一的異常信息,隱藏敏感信息。此外還能做限流和許可權控制。

使用 sqlMap 等待代碼檢測工具拆埋,它能檢測 sql 注入漏洞。

需要對資料庫 sql 的執行情況進行監控,有異常情況,及時郵件或簡訊提醒。

對生產環境的資料庫建立單獨的賬號,只分配 DML 相關許可權,且不能訪問系統表。切勿在程序中直接使用管理員賬號。

建立代碼 review 機制,能找出部分隱藏的問題,提升代碼質量。

對於不能使用預編譯傳參時,要麼開啟 druid 的 filter 防火牆,要麼自己寫代碼邏輯過濾掉所有可能的注入關鍵字。

XSS 攻擊通常指的是通過利用網頁開發時留下的漏洞,通過巧妙的方法注入惡意指令代碼到網頁,使用戶載入並執行攻擊者惡意製造的網頁程序。這些惡意網頁程序通常是 JavaScript,但實際上也可以包括 Java、 VBScript、ActiveX、 Flash 或者甚至是普通的 HTML。攻擊成功後,攻擊者可能得到包括但不限於更高的許可權(如執行一些操作)、私密網頁內容、會話和 cookie 等各種內容。

通常情況下,被用來盜用 Cookie、破壞頁面結構、重定向到其他網站等

對用戶輸入的表單信息進行檢測過濾

CSRF - Cross-Site Request Forgery - 跨站請求偽造:

攻擊可以在受害者毫不知情的情況下以受害者名義偽造請求發送給受攻擊站點,從而在未授權的情況下執行在許可權保護之下的操作,CORS - Cross Origin Resourse-Sharing - 跨站資源共享,惡意訪問內網敏感資源。

有效的解決辦法是通過多種條件屏蔽掉非法的請求,例如 HTTP 頭、參數等:

防止大規模的惡意請求,niginx 反向代理可以配置請求頻率,對 ip 做限制。nginx 可以很方便地做訪問控制,特別是一些偶發性的大量惡意請求,需要屏蔽處理。

屏蔽 ip 地址

屏蔽 user-agent

屏蔽代理 ip

有兩種情形會需要屏蔽代理 ip:一是代理 ip 訪問,二是負載均衡(real-ip 請求負載均衡伺服器,再代理給後端 server)

創建 包裝器,這是實現 XSS 過濾的關鍵,在其內重寫了 getParameter,getParameterValues,getHeader 等方法,對 http 請求內的參數進行了過濾

㈦ java web開發如何有效的防止xss攻擊

  1. 配置過濾器,再實現 ServletRequest 的包裝類。

  2. 將所有的編程全形字元的解決方式。首先添加一個jar包:commons-lang-2.5.jar ,然後在後台調用函數。

㈧ java怎麼解決跨站腳本xss html entity編碼

跨站漏洞是需要其他正常用戶進入到漏洞頁面,執行了攻擊者構造的惡意JS代碼偷取cookie,假內如攻擊者容獲得高許可權用戶的cookie就有機會以高許可權用戶的身份進入系統,然後再進一步入侵。
所以治本的方法就是對攻擊者提交的數據進行過濾,不給其執行的機會。

㈨ 用JAVA做一個網站,現在要做防止XSS攻擊,請問怎麼防止這種攻擊

過濾特定符號<pre t="code" l="java"> public static String guolv(String a) {
a = a.replaceAll("%22", "");
a = a.replaceAll("%27", "");
a = a.replaceAll("%3E", "");
a = a.replaceAll("%3e", "");
a = a.replaceAll("%3C", "");
a = a.replaceAll("%3c", "");
a = a.replaceAll("<", "");
a = a.replaceAll(">", "");
a = a.replaceAll("\"", "");
a = a.replaceAll("'", "");
a = a.replaceAll("\\+", "");
a = a.replaceAll("\\(", "");
a = a.replaceAll("\\)", "");
a = a.replaceAll(" and ", "");
a = a.replaceAll(" or ", "");
a = a.replaceAll(" 1=1 ", "");
return a;
}

㈩ java怎樣破解sessio為httponly

Session cookies (或者包含JSSESSIONID的cookie)是指用來管理web應用的session會話的cookies.這些cookie中保存特定使用者的session ID標識,而且相同的session ID以及session生命周期內相關的數據也在服務侍察器端保存。在web應用中最常清襲用的session管理方式是通過每次請求的時候將cookies傳送到伺服器端來進行session識別。

HttpOnly標識是一個可選的、避免利用XSS(Cross-Site Scripting)來獲取老正茄session cookie的標識。XSS攻擊最常見一個的目標是通過獲取的session cookie來劫持受害者的session;使用HttpOnly標識是一種很有用的保護機制。

閱讀全文

與javaxss相關的資料

熱點內容
數據線插頭怎麼接頭 瀏覽:577
網路載入視頻失敗是怎麼回事 瀏覽:805
傳奇賬號在哪個文件夾里 瀏覽:346
百度app在哪裡安裝 瀏覽:587
如何設置路由器網路不斷網 瀏覽:471
傳到qq群里的文件怎麼刪除 瀏覽:861
索尼安卓71更新日誌 瀏覽:234
怎麼找手機里的垃圾app 瀏覽:540
2015藍橋杯代碼填空 瀏覽:698
安卓資料庫dbexecSQL 瀏覽:227
doc重命名文件格式 瀏覽:728
getscreen截圖工具下載 瀏覽:719
共識數據是什麼時候開始的 瀏覽:96
數碼管顯示電壓程序 瀏覽:479
資料庫文件有哪個 瀏覽:543
途強儲存在哪個文件夾 瀏覽:172
如何恢復被覆蓋文件 瀏覽:611
iphone5用哪個版本最好 瀏覽:327
extjsgrid禁用 瀏覽:426
如何查找國外論文的編程代碼 瀏覽:366

友情鏈接