溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

代碼審計(jì)中常用導(dǎo)致漏洞函數(shù)有哪些

發(fā)布時(shí)間:2021-12-24 15:49:57 來源:億速云 閱讀:217 作者:小新 欄目:安全技術(shù)

小編給大家分享一下代碼審計(jì)中常用導(dǎo)致漏洞函數(shù)有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

1.文件包含

A、本地文件包含

include() 向上包含,向下包含,如果包含出錯(cuò)繼續(xù)向下執(zhí)行

include_once() 同上,只進(jìn)行包含一次

require() 向上包含,向下包含,如果包含出錯(cuò)不下向下執(zhí)行

require_once() 同上,只進(jìn)行包含一次

B、遠(yuǎn)程文件包含:

在php.ini文件中

allow_url_include = on

C、文件包含截?cái)?/p>

a、%00截?cái)?php版本小于5.3)

b、問號(hào)截?cái)?問號(hào)后面相當(dāng)于請(qǐng)求的參數(shù),偽截?cái)?

c、英文(.) 反斜杠(/) 截?cái)?/p>

2、文件讀?。ㄏ螺d)漏洞:

搜索關(guān)鍵函數(shù):

file_get_contents()

highlight_file()

fopen() 打開文件

read file() 讀取文件

fread()

fgetss()

fgets()

parse_ini_file()

show_source()

file()

3.文件上傳漏洞:

搜索關(guān)鍵函數(shù):

move_uploaded_file() 接著看調(diào)用這個(gè)函數(shù)的代碼是否存在為限制上傳格式或者可以繞過

(1) 未過濾或本地過濾:

服務(wù)器端未過濾,直接上傳PHP格式的文件即可利用

(2) 黑名單擴(kuò)展名過濾:

限制不夠全面:IIS默認(rèn)支持解析.asp,.cdx, .asa,.cer等

擴(kuò)展名可繞過:

(3)空格繞過

不被允許的文件格式.php,但是我們可以上傳文件名為1.php(注意后面有一個(gè)空格)

(4)文件頭 content-type驗(yàn)證繞過:

getimagesize()函數(shù):驗(yàn)證文件頭只要為GIF89a,就會(huì)返回真

限制$_FILES["file"]["type"]的值 就是人為限制content-type為可控變量。

防范:

使用in_array()或 利用三等于===對(duì)比擴(kuò)展名

保存上傳文件是重命名,規(guī)則采用時(shí)間戳拼接隨機(jī)數(shù):md5(time() + rand(1,1000))

4.文件刪除漏洞(不常見)

搜索關(guān)鍵函數(shù):

unlink()利用回溯變量的方式

老版本下的session_destroy(),可以刪除文件,現(xiàn)已基本被修復(fù)

Metinfo的任意文件刪除漏洞$action = delete即可刪除.sql的文件,如果文件不是sql直接刪除提交的文件名

target.com/recovery.php?&action=delete&filename=../../index.php

5、代碼執(zhí)行

常規(guī)函數(shù):

eval()

assert()

preg_replace(), 

call_user_func(), 

call_user_func_array(), 

array_map()

array_filter 依次將array數(shù)組中的每個(gè)值傳遞到callbach函數(shù)。如果callback函數(shù)返回true,則array數(shù)組的當(dāng)前值會(huì)被包含

create_function

usort:使用自定一函數(shù)對(duì)數(shù)組進(jìn)行排序

${}:中間的php代碼將會(huì)被解析

執(zhí)行函數(shù):

preg_replace()函數(shù):

mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )

當(dāng)$pattern處存在e修飾符時(shí),$replacement 會(huì)被當(dāng)做php代碼執(zhí)行

6.命令執(zhí)行

搜索關(guān)鍵函數(shù):

system()

exec()

shell_exec()

passthru()

pcntl_exec()

popen()

proc_open()

以上是“代碼審計(jì)中常用導(dǎo)致漏洞函數(shù)有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI