




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 漏洞分類及判定方法A1 注入原因:代碼中的邏輯裸依賴于外部的輸入。分支:SQL注入、OS命令注入、XPATH注入、LDAP注入、JSON注入、URL注入名稱現(xiàn)象解決方法SQL注入程序把用戶輸入的一段字符串直接用在了拼湊sql語(yǔ)句上,導(dǎo)致了用戶可以控制sql語(yǔ)句,比如加入delete的行為、繞過(guò)用戶密碼驗(yàn)證等使用參數(shù)形式調(diào)用sql使用存儲(chǔ)過(guò)程(存儲(chǔ)過(guò)程中不要使用動(dòng)態(tài)sql拼語(yǔ)句)使用Linq, EF等框架來(lái)寫(不要使用里面的直接拼sql語(yǔ)句的方式)OS命令注入因?yàn)槭怯沙绦蚱礈惷钚校ò▍?shù))來(lái)實(shí)現(xiàn)調(diào)用外部程序的,因此用戶也能夠通過(guò)小計(jì)量來(lái)突破限制,實(shí)現(xiàn)調(diào)用其他外部程序業(yè)務(wù)邏輯層要驗(yàn)證是否合法
2、輸入通過(guò)System.Diagnostics.Process來(lái)實(shí)現(xiàn)調(diào)用外部程序XPATH注入/EmployeeUserName/text()=aaron and password/text()=password/EmployeeUserName/text()=aaron or 1=1 or a =a and password/text()=password這個(gè)和典型的sql注入一樣,呵呵解決方法和sql類似,也是對(duì)查詢進(jìn)行參數(shù)化,如下:Declare variable $userName as xs: string external;Declare variable $password as
3、xs: string external;/ EmployeeUserName/text()=$userName and password/text()=$passwordLDAP注入LDAP查詢和sql查詢類似,也是可以通過(guò)拼字符串得來(lái)的,因此頁(yè)存在注入漏洞JSON注入user: usera, sex, boyuser: usera, sex, boy這樣會(huì)導(dǎo)致js報(bào)錯(cuò)傳統(tǒng)webform下,使用JSON.NET來(lái)實(shí)現(xiàn)json數(shù)據(jù)的生成Mvc下,使用JSONResult來(lái)生成json數(shù)據(jù)URL注入如果還有個(gè)cookie,name為:p1, value: c則,最終獲取這個(gè)參數(shù)的value為:a,
4、b,c這個(gè)認(rèn)識(shí)的還不夠深入,而且和服務(wù)器端語(yǔ)言有關(guān),只要會(huì)把幾個(gè)參數(shù)value合并起來(lái),其他語(yǔ)言都只取到一個(gè),但是取到的是第一個(gè)還是最后一個(gè),就看語(yǔ)言了。這個(gè)和業(yè)務(wù)邏輯有很大的關(guān)系A(chǔ)2 失效的身份認(rèn)證和會(huì)話管理原因:Session相關(guān)的數(shù)據(jù)沒(méi)有被完整替換導(dǎo)致的安全問(wèn)題解決關(guān)注點(diǎn):Login通過(guò)后,立刻把當(dāng)前Session(包含Session, Cache, Cookie)失效掉,把需要保存進(jìn)Session的value重開一個(gè)Session保存進(jìn);Logout功能中,除了把當(dāng)前Session失效掉外,還要把Session相關(guān)的Cache也remove掉登錄在login驗(yàn)證事件中,一旦合法身份驗(yàn)證
5、通過(guò)后,就要把Session.Abort(),來(lái)重新獲得新的Session(此時(shí)客戶端的session cookie value也會(huì)被reset成新的)注銷Session要Abort相關(guān)的緩存要clear額外的cookie也要被clearA3 跨站腳本(XSS)原因:和Injection類似,只不過(guò)xss的關(guān)注點(diǎn)落在了html, javascript注入上,由于內(nèi)容比較多,因此單獨(dú)拉出來(lái),成為了XSS分支:反射式XSS、存儲(chǔ)式XSS、基于DOM的XSS解決關(guān)注點(diǎn):html的輸入輸出編碼、javascript的編碼、url的編碼名稱現(xiàn)象解決方法反射式XSS由于服務(wù)器端直接調(diào)用了客戶端用戶輸入的數(shù)
6、據(jù)(沒(méi)有經(jīng)過(guò)無(wú)害化處理),導(dǎo)致了對(duì)廣大客戶端用戶的損害比如獲取客戶端用戶在某網(wǎng)站的所有cookie,這樣惡意用戶就能實(shí)現(xiàn)session劫持等更進(jìn)一步的攻擊對(duì)用戶輸入的數(shù)據(jù)要過(guò)濾特殊字符對(duì)輸出到客戶端的數(shù)據(jù)也要過(guò)濾特殊字符Html, js, url三大領(lǐng)域過(guò)濾方法不同,需要區(qū)別對(duì)待Server.HtmlEncode;Server.HtmlDecode;Server.UrlEncode;Server.UrlDecode;Server.UrlPathEncode;Js函數(shù)如下存儲(chǔ)式XSS存儲(chǔ)式XSS比反射式XSS更加深遠(yuǎn),范圍更廣;因?yàn)檫@種未經(jīng)處理的代碼是保存到數(shù)據(jù)庫(kù)中的,因此時(shí)間、范圍都比較廣基于
7、DOM的XSSAJAX程序中,JS代碼沒(méi)有過(guò)濾/轉(zhuǎn)換用戶輸入的文本,導(dǎo)致了對(duì)DOM元素的結(jié)構(gòu)性影響,或者導(dǎo)致了行為性的影響Js中使用escape函數(shù)來(lái)過(guò)濾特殊字符,包括元素value、元素Attribute,都要encode起來(lái)escape,encodeURI,encodeURIComponent的使用參考goody9807的這篇文章:Anti-XSS腳本過(guò)濾庫(kù),具體使用方法參考木子的這篇文章:Anti-XSS SRESRE: Security Runtime Engine的縮寫是一個(gè)更智能的過(guò)濾系統(tǒng),具體使用參考Syed的這篇文章:ASP.NET MVC 4不會(huì)進(jìn)行轉(zhuǎn)換會(huì)進(jìn)行轉(zhuǎn)換AllowH
8、tmltag盡量不改動(dòng)默認(rèn)的ValidateRequest屬性A4 不安全的直接對(duì)象引用原因:解決關(guān)注點(diǎn):url參數(shù)的編碼和解碼工具類IndirectReference/根據(jù)數(shù)據(jù)庫(kù)中的entity id生成UI客戶端用于顯示的字符串id,這個(gè)字符串id類似于散列值,不容易猜測(cè),但是能被還原String GenerateUIID(string/int/guid)/根據(jù)UI客戶端ID還原成原始的entity id,具體類型由T決定String FromUIID(string)Webform開發(fā)模式下Aspx頁(yè)面中a href=”product.aspx?productId=”產(chǎn)品APage_Loa
9、d中ductId= IndirectReference.FromUIID(Request.QueryString“productId”);MVC開發(fā)模式下為Entity增加IndirectReferenceID,然后ModelBinder就能自動(dòng)綁定了A5 安全配置錯(cuò)誤原則:最少使用模塊配置、最小權(quán)限配置;適用范圍:OS,IIS,數(shù)據(jù)庫(kù)解決關(guān)注點(diǎn):Web.config中的Error節(jié)點(diǎn)配置,比如404、403錯(cuò)誤的重定向和日志記錄、日志文件不能放在網(wǎng)站路徑下;web.config文件的加密(aspnet_regiis),具體命令如下:使用命令行,如(run as admin):
10、 C:WindowsMicrosoft.NETFrameworkv4.0.30319aspnet_regiis -site VulnerableApp -app / -pe connectionStringsA6 敏感信息泄露原因:敏感信息需要加密保存(內(nèi)存、數(shù)據(jù)庫(kù)中、客戶端)+加密傳輸(HTTPS)+不緩存(這個(gè)只是盡量,具體看情況)解決關(guān)注點(diǎn):登錄、付款這樣的頁(yè)面要用https保護(hù)傳輸加密方法密碼用單向加密,如MD5信用卡賬號(hào)等需要加密后再存儲(chǔ)到數(shù)據(jù)庫(kù)中(可逆的加密方式)傳輸層保護(hù)貌似就https了,其他的不怎么了解客戶端cookie的保護(hù)設(shè)置cookie的屬性HttpOnlySecure
11、數(shù)據(jù)庫(kù)的數(shù)據(jù)保護(hù)除了程序中進(jìn)行加密敏感數(shù)據(jù)外,數(shù)據(jù)庫(kù)級(jí)別也要使用數(shù)據(jù)庫(kù)加密A7 功能級(jí)訪問(wèn)控制缺失原因:UI中顯示了當(dāng)前用戶不能進(jìn)行的操作,比如禁用了某個(gè)delete按鈕(能被修改成disable: 0即可使用);權(quán)限驗(yàn)證是否覆蓋到了某功能、UI;服務(wù)器端是否進(jìn)行了權(quán)限驗(yàn)證(業(yè)務(wù)層級(jí)別)解決關(guān)注點(diǎn):權(quán)限驗(yàn)證Sample: 讀取文件時(shí),比如下載時(shí),如:download.aspx?file=a.txt,如果被修改成了download.aspx?file= 就麻煩了。對(duì)UI的處理導(dǎo)航欄中,如果沒(méi)有權(quán)限訪問(wèn)的,就隱藏掉,不要弄disable之類的東西具體頁(yè)面中的按鈕也是這樣的處理方式,隱藏不要禁用(就
12、是用戶不能操作的,就不要讓用戶看到,省的麻煩)在最終頁(yè)面中要加入權(quán)限判斷代碼,這樣即便直接輸入了某特權(quán)url,由于還會(huì)在page中檢查權(quán)限,因此還是安全的對(duì)主要業(yè)務(wù)函數(shù)的處理1. 要有完善的安全系統(tǒng)2. 給主要業(yè)務(wù)函數(shù)貼上tagPrincipalPermission(SecurityAction.Demand, Role = Admin)public void RemoveUserFromRole(string userName, string role)Roles.RemoveUserFromRole(userName, role);A8 跨站請(qǐng)求偽造(CSRF)原因:利用合法用戶的身份,在
13、合法用戶的終端調(diào)用請(qǐng)求。這些請(qǐng)求可能是轉(zhuǎn)賬解決關(guān)注點(diǎn):重要操作不要使用get方式,如:delete.aspx?id=1;要使用post方式;為每個(gè)能進(jìn)行post動(dòng)作的form增加token,并且在服務(wù)器端檢查token是否合法,合法則進(jìn)行操作;Webform傳統(tǒng)開發(fā)模式給每個(gè)請(qǐng)求的頁(yè)面加入token的解決方法:使用Anti-CSRF組件可解決,使用方法見(jiàn):自定義ViewState默認(rèn)的ViewState是沒(méi)有加密的,很容易被看到具體的value,如通過(guò)這個(gè)工具就能看到:ViewStateDecoder,url 可以通過(guò)給ViewState自定義來(lái)緩解那么一點(diǎn)點(diǎn),但是沒(méi)辦法提升到像加入token
14、那樣的力度,代碼很簡(jiǎn)單:this.ViewStateUserKey=Convert.ToString(Session“UserID”)如上代碼即可實(shí)現(xiàn)對(duì)ViewState的加密,會(huì)根據(jù)this.ViewStateUserKey的value對(duì)每個(gè)ViewState進(jìn)行Salt類似的加密MVC開發(fā)模式HttpPostValidateAntiForgeryTokenpublic ActionResult Login(Usr usr)return View();在aspx模版或者Razor 模版中的form中增加如下代碼:具體的方式參考這篇文章:A9 使用含有已知漏洞的組件原因:由于系統(tǒng)有意無(wú)意間使用了組件(自己的組件和第三方的組件,范圍太廣),導(dǎo)致了不可預(yù)料的問(wèn)題解決關(guān)注點(diǎn):對(duì)于自己的組件,要加強(qiáng)質(zhì)量,這個(gè)已經(jīng)和代碼沒(méi)有很多關(guān)系了,更多的是質(zhì)量管理、版本管理方面的了,略;對(duì)于第三方的組件,要選擇知名的提供商。A10 未驗(yàn)證的重定向和轉(zhuǎn)發(fā)原因:當(dāng)系統(tǒng)接受重定向參數(shù)(login界面居多,如:解決關(guān)注點(diǎn):對(duì)于returnUrl這種參數(shù)值進(jìn)行判斷,只要在白名單中的url才能redirect,盡量使用相對(duì)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年數(shù)控裁板鋸合作協(xié)議書
- 品牌市場(chǎng)推廣與銷售授權(quán)協(xié)議
- 2025年錘紋漆項(xiàng)目建議書
- 農(nóng)村土地流轉(zhuǎn)價(jià)格確認(rèn)協(xié)議
- 農(nóng)業(yè)種植技術(shù)合作開發(fā)及轉(zhuǎn)讓合同
- 2025年鍋爐-汽機(jī)協(xié)調(diào)控制系統(tǒng)項(xiàng)目發(fā)展計(jì)劃
- 出口貿(mào)易業(yè)務(wù)合作及出口證明(8篇)
- 機(jī)械行業(yè)智能制造與裝配方案
- 2025年大型并網(wǎng)風(fēng)力發(fā)電機(jī)組項(xiàng)目發(fā)展計(jì)劃
- 市政建設(shè)中的能源管理策略試題及答案
- 教你成為歌唱達(dá)人智慧樹知到期末考試答案2024年
- 河南省澠池縣上洼鉀長(zhǎng)石礦礦山地質(zhì)環(huán)境保護(hù)與土地復(fù)墾方案
- 健康指南梅尼埃病的治療方法與康復(fù)計(jì)劃
- 當(dāng)代美國(guó)幼小銜接政策的研究
- 《工廠改善報(bào)告》課件
- 老年人脊椎疾病的預(yù)防和康復(fù)
- 大學(xué)物理課件57波爾共振實(shí)驗(yàn)
- 人工智能助力治安維穩(wěn)
- 秦漢時(shí)期的服裝
- 麥凱66表格(完全版)
- 少女乙女的戀愛(ài)革命全中文攻略
評(píng)論
0/150
提交評(píng)論