国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

php代碼審計(jì),php漏洞詳解

這篇具有很好參考價(jià)值的文章主要介紹了php代碼審計(jì),php漏洞詳解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1、輸入驗(yàn)證和輸出顯示

大多數(shù)漏洞的形成原因主要都是未對輸入數(shù)據(jù)進(jìn)行安全驗(yàn)證或?qū)敵鰯?shù)據(jù)未經(jīng)過安全處
理,比較嚴(yán)格的數(shù)據(jù)驗(yàn)證方式為:

對數(shù)據(jù)進(jìn)行精確匹配
接受白名單的數(shù)據(jù)
拒絕黑名單的數(shù)據(jù)
對匹配黑名單的數(shù)據(jù)進(jìn)行編碼

在 PHP 中可由用戶輸入的變量列表如下,我們應(yīng)該對這些輸入變量進(jìn)行檢查:

$_SERVER
$_GET
$_POST
$_COOKIE
$_REQUEST
$_FILES
$_ENV
$_HTTP_COOKIE_VARS
$_HTTP_ENV_VARS
$_HTTP_GET_VARS
$_HTTP_POST_FILES
$_HTTP_POST_VARS
$_HTTP_SERVER_VARS

2、命令注入(Command Injection)

PHP 中可以使用下列 5 個函數(shù)來執(zhí)行外部的應(yīng)用程序或函數(shù)

system、exec、passthru、shell_exec、(與 shell_exec 功能相同)

使用方式

string system(string command, int &return_var)
command 要執(zhí)行的命令
return_var 存放執(zhí)行命令的執(zhí)行后的狀態(tài)值
string exec (string command, array &output, int &return_var)
command 要執(zhí)行的命令
output 獲得執(zhí)行命令輸出的每一行字符串
return_var 存放執(zhí)行命令后的狀態(tài)值
void passthru (string command, int &return_var)
command 要執(zhí)行的命令
return_var 存放執(zhí)行命令后的狀態(tài)值

案例
將下面代碼放在服務(wù)器,我們在瀏覽器訪問

//ex1
<?php
$ip = $_GET["ip"];
if (isset($ip))
{
echo "<pre>";
system("ping ".$ip);
echo "</pre>";
}
?>

可以看到執(zhí)行了ping命令
php代碼審計(jì),php漏洞詳解,代碼審計(jì),php,chrome,開發(fā)語言
由于它沒有對 ip 參數(shù)進(jìn)行任何驗(yàn)證或過濾,惡意用戶可以通過在 URL 中添加特殊字符來執(zhí)行任意命令
php代碼審計(jì),php漏洞詳解,代碼審計(jì),php,chrome,開發(fā)語言

3、eval 注入(Eval Injection)

eval 函數(shù)將輸入的字符串參數(shù)當(dāng)作 PHP 程序代碼來執(zhí)行
將下面代碼放在服務(wù)器,我們在瀏覽器訪問

//ex2
<?php
$var = "var";
if (isset($_GET["arg"]))
{
$arg = $_GET["arg"];
eval("\$var = $arg;");
echo "\$var =".$var;
}
?>

當(dāng)我們把傳遞的參數(shù)值改為phpinfo的時(shí)候,漏洞就產(chǎn)生了
php代碼審計(jì),php漏洞詳解,代碼審計(jì),php,chrome,開發(fā)語言
防范方法

1、盡量不要執(zhí)行外部命令
2、使用自定義函數(shù)或函數(shù)庫來替代外部命令的功能
3、使用 escapeshellarg 函數(shù)來處理命令參數(shù)
4、使用 safe_mode_exec_dir 指定可執(zhí)行文件的路徑
esacpeshellarg 函數(shù)會將任何引起參數(shù)或命令結(jié)束的字符轉(zhuǎn)義,單引號“’”,替換成“\’”,雙引號““”,替
換成“””,分號“;”替換成“;”
用 safe_mode_exec_dir 指定可執(zhí)行文件的路徑,可以把會使用的命令提前放入此路徑內(nèi)

4、跨網(wǎng)站腳本攻擊(Cross Site Scripting, XSS)

反射型跨站常常出現(xiàn)在用戶提交的變量接受以后經(jīng)過處理,直接輸出顯示給客戶端;存儲
型跨站常常出現(xiàn)在用戶提交的變量接受過經(jīng)過處理后,存儲在數(shù)據(jù)庫里,然后又從數(shù)據(jù)庫中讀取
到此信息輸出到客戶端。輸出函數(shù)經(jīng)常使用:echo、print、printf、vprintf、<%=$test%>

這里用pikachu的存儲型代碼進(jìn)行分析
php代碼審計(jì),php漏洞詳解,代碼審計(jì),php,chrome,開發(fā)語言
這段代碼它沒有對用戶輸入的留言進(jìn)行任何驗(yàn)證或過濾,因此可能會受到存儲型跨站腳本攻擊(Stored XSS Attack)的威脅。存儲型跨站腳本攻擊是一種常見的網(wǎng)絡(luò)攻擊方式,攻擊者通過在網(wǎng)頁中插入惡意腳本,來竊取用戶信息或破壞網(wǎng)頁內(nèi)容1

5、SQL 注入攻擊(SQL injection)

SQL 注入攻擊(SQL Injection),是攻擊者在表單中提交精心構(gòu)造的 sql 語句,改動原來的 sql 語句,如
果 web 程序沒有對提交的數(shù)據(jù)經(jīng)過檢查,那么就會造成 sql 注入攻擊。

1、攻擊者訪問有 SQL 注入漏洞的站點(diǎn),尋找注入點(diǎn)
2、攻擊者構(gòu)造注入語句,注入語句和程序中的 SQL 語句結(jié)合生成新的 sql 語句
3、新的 sql 語句被提交到數(shù)據(jù)庫中執(zhí)行 處理
4、數(shù)據(jù)庫執(zhí)行了新的 SQL 語句,引發(fā) SQL 注入攻擊

SQL 注入因?yàn)橐僮鲾?shù)據(jù)庫,所以一般會查找SQL 語句關(guān)鍵字:

insert、delete、update、 select

查看傳遞的變量參數(shù)是否用戶可控制,有無做過安全處理,可以使用參數(shù)化查詢防范

6、跨網(wǎng)站請求偽造攻擊(Cross Site Request Forgeries, CSRF)

跨站請求偽造攻擊,是攻擊者偽造一個惡意請求鏈接,通過各種方式讓正常用戶訪問后,
會以用戶的身份執(zhí)行這些惡意的請求。我們應(yīng)該對比較重要的程序模塊,比如修改用戶密碼,添 加用戶的功能進(jìn)行審查,檢查有無使用一次性令牌防御
csrf 攻擊。

7、Session 會話劫持(Session Hijacking)

會話劫持是指攻擊者利用各種手段來獲取目標(biāo)用戶的 session id。一旦獲取到 session id,那么攻擊者可以利用目標(biāo)用戶的身份來登錄網(wǎng)站,獲取目標(biāo)用戶的操作權(quán)限。

服務(wù)端和客戶端之間是通過 session(會話)來連接溝通。當(dāng)客戶端的瀏覽器連接到服務(wù)器后,服務(wù)器就會建立一個該用戶的session。
每個用戶的 session 都是獨(dú)立的,并且由服務(wù)器來維護(hù)。 每個用戶的 session是由一個獨(dú)特的字符串來識別,成為session id。用戶發(fā)出請求時(shí),所發(fā)送的 http 表頭內(nèi)包含 session id 的值。
服務(wù)器使用 http 表頭內(nèi)的session id 來識別時(shí)哪個用戶提交的請求。
session 保存的是每個用戶的個人數(shù)據(jù),一般的 web 應(yīng)用程序會使用session 來保存通過驗(yàn)證的用戶 賬號和密碼。在轉(zhuǎn)換不同的網(wǎng)頁時(shí),如果需要驗(yàn)證用戶身份,就是用 session內(nèi)所保存的賬號和密碼來比較。
session 的生命周期從用戶連上服務(wù)器后開始,在用戶關(guān)掉瀏覽器或是注銷時(shí)用戶session_destroy 函數(shù)刪除 session 數(shù)據(jù)時(shí)結(jié)束。如果用戶在 20 分鐘內(nèi)沒有使用計(jì)算機(jī)的動作,session也會自動結(jié)束。

8、Session 固定攻擊(Session Fixation)

如果當(dāng)權(quán)限級別改變時(shí)(例如核實(shí)用戶名和密碼后,普通用戶提升到管理員),我們就應(yīng)該
修改即將重新生成的會話 ID,否則程序會面臨會話固定攻擊的風(fēng)險(xiǎn)。

9、HTTP 響應(yīng)拆分攻擊(HTTP Response Splitting)

HTTP 響應(yīng)拆分是由于攻擊者經(jīng)過精心設(shè)計(jì)利用電子郵件或者鏈接,讓目標(biāo)用戶利用一個請求產(chǎn)生兩個響應(yīng),前一個響應(yīng)是服務(wù)器的響應(yīng),而后一個則是攻擊者設(shè)計(jì)的響應(yīng)。此攻擊之所以會發(fā)生,是因?yàn)?WEB程序?qū)⑹褂谜叩臄?shù)據(jù)置于 HTTP 響應(yīng)表頭中,這些使用者的數(shù)據(jù)是有攻擊者精心設(shè)計(jì)的。
可能遭受 HTTP 請求響應(yīng)拆分的函數(shù)包括以下幾個:

header(); setcookie(); session_id(); setrawcookie();

注意
PHP 的高版本會禁止 HTTP 表頭中出現(xiàn)換行字符,這類可以直接跳過本測試

10、文件上傳漏洞(File Upload Attack)

PHP 文件上傳通常會使用 move_uploaded_file,也可以找到文件上傳的程序進(jìn)行具體分析文章來源地址http://www.zghlxwxcb.cn/news/detail-641263.html

防范方式:
使用白名單方式檢測文件后綴
上傳之后按時(shí)間能算法生成文件名稱
上傳目錄腳本文件不可執(zhí)行
注意%00截?cái)?

11、目錄穿越漏洞(Directory Traversal)

12、遠(yuǎn)程文件包含攻擊(Remote Inclusion)

13、動態(tài)函數(shù)注入攻擊(Dynamic Variable Evaluation)

14、URL 攻擊(URL attack)

15、表單提交欺騙攻擊(Spoofed Form Submissions)

16、HTTP 請求欺騙攻擊(Spoofed HTTP Requests)

到了這里,關(guān)于php代碼審計(jì),php漏洞詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • PHP代碼審計(jì)——PHP中常見的敏感函數(shù)列表

    PHP代碼審計(jì)——PHP中常見的敏感函數(shù)列表

    ??????PHP中常見的敏感函數(shù)列表。 ??????命令執(zhí)行函數(shù),執(zhí)行一個外部程序,不顯示輸出。 ??????命令執(zhí)行函數(shù),執(zhí)行一個外部程序,顯示輸出。 ??????命令執(zhí)行函數(shù),執(zhí)行一個外部程序,顯示原始輸出。 ??????通過shell 環(huán)境執(zhí)行命令,并且將完整的輸出以字符

    2024年02月02日
    瀏覽(21)
  • 【PHP代碼審計(jì)】ctfshow web入門 php特性 93-104

    【PHP代碼審計(jì)】ctfshow web入門 php特性 93-104

    這段PHP代碼是一個簡單的源碼審計(jì)例子,讓我們逐步分析它: include(\\\"flag.php\\\"); : 這行代碼將 flag.php 文件包含進(jìn)來。如果 flag.php 文件中定義了變量 $flag ,它將在當(dāng)前文件中可用。 highlight_file(__FILE__); : 這行代碼將會將當(dāng)前文件的源代碼進(jìn)行語法高亮并輸出到瀏覽器,以便我們

    2024年02月14日
    瀏覽(24)
  • java代碼審計(jì)之SQL注入漏洞

    java代碼審計(jì)之SQL注入漏洞

    開更文章了,開一個關(guān)于Java代碼審計(jì)相關(guān)的系列。 本來是想寫成一本書的模式的,但是越寫越發(fā)覺,篇幅太多,想了下還是每個專題單獨(dú)寫,而后最后匯總到一起。 慢慢寫,基于筆者的理解抒寫,如有問題,忘斧正。 關(guān)于這個系列不會可能有些不會寫修復(fù)方案,也不會寫得特別細(xì)

    2024年02月19日
    瀏覽(23)
  • 代碼審計(jì)-ASP.NET項(xiàng)目-未授權(quán)訪問漏洞

    代碼審計(jì)-ASP.NET項(xiàng)目-未授權(quán)訪問漏洞

    代碼審計(jì)必備知識點(diǎn): 1、代碼審計(jì)開始前準(zhǔn)備: 環(huán)境搭建使用,工具插件安裝使用,掌握各種漏洞原理及利用,代碼開發(fā)類知識點(diǎn)。 2、代碼審計(jì)前信息收集: 審計(jì)目標(biāo)的程序名,版本,當(dāng)前環(huán)境(系統(tǒng),中間件,腳本語言等信息),各種插件等。 3、代碼審計(jì)挖掘漏洞根本: 可控

    2024年02月12日
    瀏覽(13)
  • Java代碼審計(jì)安全篇-SSRF(服務(wù)端請求偽造)漏洞

    Java代碼審計(jì)安全篇-SSRF(服務(wù)端請求偽造)漏洞

    前言: ?墮落了三個月,現(xiàn)在因?yàn)楸徽覍?shí)習(xí)而困擾,著實(shí)自己能力不足,從今天開始 每天沉淀一點(diǎn)點(diǎn) ,準(zhǔn)備秋招?加油 注意: 本文章參考qax的網(wǎng)絡(luò)安全java代碼審計(jì),記錄自己的學(xué)習(xí)過程,還希望各位博主 師傅 大佬 勿噴,還希望大家指出錯誤 SSRF漏洞? SSRF(Server-side Request

    2024年03月15日
    瀏覽(23)
  • 干貨分享 | 3分鐘讀懂漏洞掃描與代碼審計(jì)的區(qū)別

    很多研發(fā)同學(xué)常常 將漏洞掃描與代碼審計(jì)的概念混淆 。有些人認(rèn)為代碼審計(jì)就是漏洞掃描,也有些人認(rèn)為做完漏洞掃描就不需要做代碼審計(jì)了。今天我們就來講講代碼審計(jì)與漏洞掃描的區(qū)別。 造成以上混淆的原因有以下幾點(diǎn): 工具的相似性 漏洞掃描和代碼審計(jì)都是安全領(lǐng)

    2024年02月01日
    瀏覽(21)
  • 【代碼審計(jì)篇】 代碼審計(jì)工具Fortify基本用法詳解

    【代碼審計(jì)篇】 代碼審計(jì)工具Fortify基本用法詳解

    本篇文章講解代碼審計(jì)工具Fortify的基本用法,感興趣的小伙伴可以研究學(xué)習(xí)一下,文中部分地方可能會有遺漏,麻煩各位大佬指正,深表感謝?。?! Fortify全名叫 Fortify SCA ,是惠普公司HP的出品的一款源代碼安全測試工具,這家公司也出品過另一款Web漏洞掃描器,叫做 Webin

    2024年02月05日
    瀏覽(24)
  • Java代碼審計(jì)15之Apache log4j2漏洞

    Java代碼審計(jì)15之Apache log4j2漏洞

    2.1、高版本測試 先說結(jié)論,ldap協(xié)議, rmi協(xié)議 還有就是“ “${jndi:rmi://127.0.0.1:7778/exp}” ” 2.2、測試代碼 先引入組件, main.java jndiexp.java 2.3、補(bǔ)充之dns探測 2.3.1、rmi、ldap也可以dnslog探測 在使用dnslog探測漏洞的時(shí)候, 其實(shí)不僅僅dns協(xié)議可以,ldap和rmi協(xié)議也可以, 類似的rmi,

    2024年02月10日
    瀏覽(29)
  • 【代碼審計(jì)-.NET】基于.NET框架開發(fā)的代碼審計(jì)

    【代碼審計(jì)-.NET】基于.NET框架開發(fā)的代碼審計(jì)

    ? 博主:網(wǎng)絡(luò)安全領(lǐng)域狂熱愛好者(承諾在CSDN永久無償分享文章)。 殊榮:CSDN網(wǎng)絡(luò)安全領(lǐng)域優(yōu)質(zhì)創(chuàng)作者,2022年雙十一業(yè)務(wù)安全保衛(wèi)戰(zhàn)-某廠第一名,某廠特邀數(shù)字業(yè)務(wù)安全研究員,edusrc高白帽,vulfocus、攻防世界等平臺排名100+、高校漏洞證書、cnvd原創(chuàng)漏洞證書等。 擅長:對

    2024年02月04日
    瀏覽(18)
  • 代碼審計(jì)——XSS詳解

    代碼審計(jì)——XSS詳解

    跨站腳本攻擊(Cross Site Script)是一種將惡意JavaScript代碼插入到其他Web用戶頁面里執(zhí)行以達(dá)到攻擊目的的漏洞。 攻擊者利用應(yīng)用程序的動態(tài)展示數(shù)據(jù)功能,在html頁面里嵌入惡意代碼。當(dāng)用戶瀏覽該頁之時(shí),這些嵌入在html中的惡意代碼會被執(zhí)行,用戶瀏覽器被攻擊者控制,從

    2024年02月10日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包