01
輸入和輸出流
這些用於將數據讀入應用程序。它們可能是應用程序的潛在入口點。進入點可能來自外部來源,必須進行調查。這些也可以用於路徑遍歷攻擊或DoS 攻擊。
要搜索的字符串:
FilelnputStream
ObjectinputStream
FilterinputStream
PipedinputStream
SequencelnputStream
StringBufferinputStream
BufferedReader
ByteArrayinputStrean
javaio.FileOutputStream
File
OblectinputStream
PipedinputStream
StreamTokenizer
getResourceAsStream
java.io.FileReader
ava.io.FileWriter
java.io.RandomAccessFile
java.io.File
renameTo
Mkdir
02
Servlets
接口調用可能的參數/header/URL/cookie 篡改, HTTP 響應拆分和信息泄漏的途徑。審計Http請求中獲取的參數。
要搜索的字符串:
favax.servlet.
getParameterNames
qetParameterValues
qetParameter
getParameterMap
aetScheme
getProtocol
getContentType
getServerName
getRemoteAddr
getRemoteHost
getRealPath
getLocalName
getAttribute
getAttributeNames
getLocalAddr
getAuthType
getRemoteUser
getCookies
Secure
HttpServletRequest
getQueryString
getHeaderNames
getheaders
getPrincipal
getUserPrincipal
isUserinRole
getinputStream
getOutputStream
getWriter
addCookie
addHeader
setHeader
setAttribute
putValue
javax.servlet.http.Cookie
getName
getPath
getDomain
getComment
getMethod
getPath
getReader
getRealPath
getRequestURi
getRequestURL
getServerName
getValue
getValueNames
getRequestedSessionld
qetParameterValues
qetParameter
favax.servlet.
getParameterNames
03
跨站腳本
要搜索的字符串:
Javax.servlet. ServletOutputStream.print
strcpy
04
響應拆分
響應拆分允許攻擊者通過在報頭中添加額外的 CRLF來控制響應體。在 HTTP 中,報頭和正文由 2 個 CRLF 字符分隔,因此,如果攻擊者的輸入用於響應報頭,並且該輸入包含2 個 CRLF字符,則 CRLF 之後的任何內容都將被解釋為響應正文。在代碼審計中,確保系統過濾任何被放入標頭的信息。
要搜索的字符串:
javax.servlet.http.HttpServletResponsesendRedire
strcpy
setHeader
05
重定向
每當應用程序發送重定向響應時,都要確保所涉及的邏輯不會被攻擊者的輸入所操縱。尤其是當使用輸入來確定重定向的目的地時。
要搜索的字符串:
sendRedirect
setStatus
addHeader
etHeader
06
SQL和數據庫
搜索與 Java 數據庫相關的代碼應該有助於查明被審計的應用程序的持久層中涉及的類/方法。
要搜索的字符串:
java.sql.Connection.prepareStatement
java.sql.ResultSetgetObject
select
insert
java.sal.Statement.executeUpdate
java.sqLStatementaddBatch
execute
executestatement
createStatement
java.sal.ResultSet.getString
executeQuery
fdbc
java.sql.Statement.executeQuery
java.sql.Statement.execute
delete
update
java.sql.Connection.prepareCall
07
SSL
尋找利用 SSL 作為點對點加密媒介的代碼。下面的片段應該指出 SSL 功能是在哪裡開發的。
要搜索的字符串:
com.sun.net.ssl
SSLContext
SSLSocketFactory
TrustManagerFactory
HttosURLConnection
KeyManagerFactory
08
會話管理
要搜索的字符串:
getSession
invalidate
getId
09
命令交互
可能容易受到命令注入攻擊或操作系統注入攻擊。Java 連接到本機操作系統可能會導致嚴重問題,並可能導致服務器整體受損。
要搜索的字符串:
java.lang.Runtime.exec
java.lang.Runtime.getRuntime
getId
10
日誌記錄
通過審計應用程序中包含的以下代碼,可能會遇到一些信息泄漏。
要搜索的字符串:
java.io.PrintStream.write
log4j
iLo
Lumberiack
MonoLog
qflog
just4loa
log4Ant
JDLabAgent
11
查找 Ajax 的用法和可能的JavaScript 問題
要搜索的字符串:
document.write
eval
document.cookie
window.location
document.URL
document.URL
參考資料
掃碼加個好友進
cisp系列考證備考群
請備註進群
