JAVAweb網(wǎng)站代碼審計(jì).doc_第1頁(yè)
JAVAweb網(wǎng)站代碼審計(jì).doc_第2頁(yè)
JAVAweb網(wǎng)站代碼審計(jì).doc_第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、精品文檔JAVA web網(wǎng)站代碼審計(jì)入門(mén)本人還處于代碼審計(jì)的初級(jí)階段,此文章類似于編碼規(guī)范,有啥建議,評(píng)論給我由于剛開(kāi)始學(xué)代碼審計(jì)的時(shí)候,就感覺(jué)一團(tuán)代碼,不知道從何下嘴。先從底層開(kāi)始審計(jì):底層漏洞:1. 查看該系統(tǒng)所用框架:Struts2的相關(guān)安全:(1) 低版本的 struts2 ,低版本的 Struts2 存在很多已知的版本漏洞。一經(jīng)使用,很容易造成比較大的危害。(2)開(kāi)啟Struts2的動(dòng)態(tài)調(diào)用方法, 現(xiàn)在發(fā)現(xiàn)的如s2-033 ,s2-032等漏洞, 都是由于系統(tǒng)開(kāi)啟了動(dòng)態(tài)調(diào)用方法,導(dǎo)致遠(yuǎn)程代碼執(zhí)行。(3) 在 jsp 頁(yè)面中使用 Struts2 的 ognl 表達(dá)式傳輸數(shù)據(jù)。(4) 開(kāi)

2、啟 Struts2 的 devMode ,易造成遠(yuǎn)程代碼執(zhí)行(5) 存在 Struts2 本身自帶的 ognl 頁(yè)面(6) 使用 Struts2 自帶的 redirect 等方法Spring的相關(guān)安全:Spring 在 jsp 中使用 el 表達(dá)式時(shí),注意 spring 的 boot 框架版本,因?yàn)橛行┑桶姹緯?huì)存在遠(yuǎn)程命令執(zhí)行。mybatis xml相關(guān)安全:在 SQL 語(yǔ)句中,使用 $ 進(jìn)行傳參,導(dǎo)致 SQL 注入;其他安全:在使用 java 自帶的環(huán)境時(shí),如 weblogic 或者 jboss ,請(qǐng)注意查看版本號(hào),因?yàn)榇祟惌h(huán)境低版本,大部分包含 java 反序列化漏洞,導(dǎo)致遠(yuǎn)程代碼執(zhí)行;g

3、lassfish環(huán)境某些版本存在任意文件讀取;2. 查找 SQL 注入:DAO: 是否存在拼接的SQL 語(yǔ)句如: String sql = select * from user where id=+id;XML 中:是否使用 $, 因?yàn)樵?xml 中,#value# 此時(shí) value 是以參數(shù)的形式插入進(jìn)去, $value$ 此時(shí) value 是以字符串的形式直接插入到 xml 中,會(huì)導(dǎo)致 sql 注入;select * from tb_card_bin where card_length = #cardLength# and instr(bin_no, $cardNoFirstNum$) =

4、 13. 第三方控件漏洞.精品文檔如: fckeditor,wordpress等等。查找完底層漏洞后,查看系統(tǒng)中相應(yīng)的action或者 do 方法。如果用的是ssh 框架的話,這些方法的相關(guān)配置保存在Struts2的配置文件中。如果用的是springmvc框架的話,這些方法可能保存在applicationContext.xml( spring的配置文件),或者采用的是掃描注入的話,建議全局搜索RequestMapping等注入路徑的關(guān)鍵字來(lái)確定action方法所在。以下,以action方法為例:4.文件上傳漏洞文件上傳的action有一個(gè)比較顯著的特征:Spring MVC默認(rèn)支持兩種文件上傳

5、操作方式。一種是使用MultipartHttpServletRequest或者 MultipartFile作為方法參數(shù),第二種是使用javax.servlet.http.Part作為方法參數(shù)。代碼舉例:RequestMapping(value = /accounting/voucher/importVoucher.htm, method =RequestMethod.POST)SuppressWarnings(unchecked)public String importBankGlide(RequestParam(voucherFile)MultipartFile voucherFile, R

6、equestParam(returnFile) MultipartFile returnFile,ServletRequest request, ModelMap model) if (voucherFile = null | voucherFile.getSize() 0) /并未對(duì)文件進(jìn)行檢查,直接上傳File file = new File(model.get(path); else model.put(ERROR_MESSAGE, 上傳附件失敗,請(qǐng)重新發(fā)起: + result.getResultMessage();return /accounting/voucher/importVou

7、cher;文件上傳存在的主要原因,一,未對(duì)文件名稱進(jìn)行檢測(cè)直接上傳;二,未對(duì)傳入的文件內(nèi)容進(jìn)行檢測(cè)直接上傳;5. 遠(yuǎn)程命令執(zhí)行在調(diào)用本機(jī)的shell ,去運(yùn)行特殊的命令時(shí),沒(méi)有對(duì)傳入的參數(shù)進(jìn)行檢查,導(dǎo)致命令執(zhí)行;Runtime.getRuntime().exec此方法用來(lái)執(zhí)行shellcom.opensymphony.xwork2.ognl.OgnlValueStack的 protected Object findValue(String expr,String field, String errorMsg)該方法是用來(lái)執(zhí)行ognl表達(dá)式。6.遠(yuǎn)程代碼執(zhí)行.精品文檔第一,通過(guò)使用腳本引擎中的

8、eval 去執(zhí)行些特殊的東西, 這種地方要著重去看, 是否會(huì)有用戶輸入的變量傳入。第二,通過(guò)反射來(lái)執(zhí)行代碼:Class c=Class.forName(com.wqx.test4.Test);/ 創(chuàng)建這個(gè)類的實(shí)例,前提是存在這個(gè)類,并且存在此種方法Object obj=c.newInstance();/ 通過(guò) class 來(lái)取得這個(gè)方法對(duì)象 并且聲明 這個(gè)類的參數(shù)類型java.lang.reflect.Method method=c.getMethod(sayhello,Class.forName(java.lang.String);/invoke來(lái)執(zhí)行方法對(duì)象記得參數(shù)類型要跟這里的參數(shù)匹配m

9、ethod.invoke(obj, wqx);7. 越權(quán)下載首先, fileName是用戶可以控制的,如下:String fileName =././././1.xml;/此處為用戶輸入內(nèi)容File file = new File(/Users/dly/Desktop/test2/src/main/webapp/upload/ + fileName);FileInputStream fileInputStream = new FileInputStream(file);BufferedReader buff= new BufferedReader(new InputStreamReader(fileInputStream);System.out.println(buff.readLine();此時(shí), 1.xml存在,會(huì)導(dǎo)致越權(quán)下載。8. 敏感信息泄漏第一,代碼泄漏,.svn 的文件

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論