close

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

查找 Ajax 的用法和可能的JavaScript 問題

要搜索的字符串:

document.write

eval

document.cookie

window.location

document.URL

document.URL

參考資料

《OWASP CODE REVIEW GUIDE 2.0 應用軟件安全代碼審查指南》

掃碼加個好友進

cisp系列考證備考群

請備註進群

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 鑽石舞台 的頭像
    鑽石舞台

    鑽石舞台

    鑽石舞台 發表在 痞客邦 留言(0) 人氣()