欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP網(wǎng)絡(luò)安全之命令執(zhí)行漏洞及防御

 更新時間:2022年07月26日 11:32:57   作者:GSflyy  
這篇文章主要介紹了PHP命令執(zhí)行漏洞及防御,網(wǎng)絡(luò)安全越來越受重視的今天,漏洞與防御都需要有所了解,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下

命令執(zhí)行漏洞的原理

程序應(yīng)用有時需要調(diào)用一些執(zhí)行系統(tǒng)命令的函數(shù),如php中的system,exec,shell exec,passthru,popen,proc popen等,當(dāng)用戶可以控制這些函數(shù)的參數(shù)時,就可以將惡意系統(tǒng)命令拼接到正常命令中,從而造成命令注入攻擊

兩個條件

(1)用戶可以控制函數(shù)輸入

(2)存在可以執(zhí)行代碼的危險函數(shù)

命令執(zhí)行漏洞產(chǎn)生原因

1.開發(fā)人員編寫源碼時,未針對代碼中可執(zhí)行的特殊函數(shù)入口作過濾,導(dǎo)致客戶端可以惡意構(gòu)造語句,并提交服務(wù)端執(zhí)行

2.命令注入攻擊中,web服務(wù)器沒有過濾類似system,eval,exec等函數(shù),是該漏洞攻擊成功的主要原因。

命令執(zhí)行漏洞的危害

1.繼承web服務(wù)程序的權(quán)限去執(zhí)行系統(tǒng)命令或讀寫文件

2.反彈shell

3.控制整個網(wǎng)站甚至服務(wù)器

4.進(jìn)一步內(nèi)網(wǎng)滲透

實例

<?php echo shell_exec($_GET['a']); ?>

將url中的參數(shù)a作為cmd命令行指令執(zhí)行

危險函數(shù)導(dǎo)致代碼執(zhí)行

<?php 
$arr = $_GET['arr']; 
$array = $_GET['array']; 
$new_array = arraymap($arr,$array); 
?>

arraymap是一個危險函數(shù),它會默認(rèn)將參數(shù)作為php代碼執(zhí)行

PHP一些可調(diào)用外部程序的危險函數(shù)

eval攻擊

eval函數(shù)將輸入的參數(shù)當(dāng)成php代碼來執(zhí)行

mixed eval(string code str)

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

preg_replace()函數(shù)

preg_replace()函數(shù)執(zhí)行一個正則表達(dá)式的搜索和替換

在php版本為5.5.0以下時有一個漏洞,當(dāng)該函數(shù)使用了一個不安全的修飾符"\e"時,preg_replace()會對替換字符串的反向引用進(jìn)行正常替換,將其作為php代碼進(jìn)行計算,并使用 結(jié)果替換搜索字符串。

此處/e的用處是引用括號里的字符 也就是以參數(shù)a去替代括號里的字符

ps:不要忘記代碼兩側(cè)的中括號

call_user_func

函數(shù)用法:

call_user_func($_GET["a"] , $_GET["b"])

將a作為函數(shù)執(zhí)行,b作為函數(shù)參數(shù)傳遞進(jìn)去

在命令注入時,常有需要多命令執(zhí)行的情況

在linux下,可以使用|或||代替

|是管道符,顯示后面的執(zhí)行結(jié)果

||當(dāng)前面命令執(zhí)行出錯時再執(zhí)行后面的

在Window下,可以使用&、&&、|、||代替

&前面的語句為假則執(zhí)行后面的

&&前面的語句為假則直接出錯,后面的也不執(zhí)行

|直接執(zhí)行后面的語句

||前面出錯執(zhí)行后面的語句

命令執(zhí)行的防御手段

1.盡量不要執(zhí)行外部命令

2.使用自定義函數(shù)或函數(shù)庫替代外部函數(shù)功能

3.使用escapeshellarg函數(shù)來處理命令參數(shù)

4.使用safe_mode_exec_dir:指定可執(zhí)行文件路徑 ,這樣可以將會使用的命令提前放入此路徑內(nèi)

safe_mode_exec_dir = /usr/local/php/bin

DVWA介紹

DVWA平臺:

用來進(jìn)行安全脆弱性鑒定的PHP/Mysql Web應(yīng)用

為安全專業(yè)人員測試總結(jié)的專業(yè)技能和工具提供合法環(huán)境

幫助web開發(fā)者更好的理解web應(yīng)用安全防范的過程

DVWA的搭建

DVWA是基于php/mysql環(huán)境開發(fā)的

下載地址:

Buy Steroids Online UK - Anabolic Steroids For Sale UK

GitHub

DVWA練習(xí)命令注入

使用靶場自行練習(xí)

到此這篇關(guān)于PHP網(wǎng)絡(luò)安全之命令執(zhí)行漏洞及防御的文章就介紹到這了,更多相關(guān)PHP漏洞及防御內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • PHP靜態(tài)成員變量

    PHP靜態(tài)成員變量

    本文主要介紹了PHP靜態(tài)成員變量的相關(guān)知識。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • PHP之COOKIE支持詳解

    PHP之COOKIE支持詳解

    建立商業(yè)站點或者功能比較完善的個人站點,常常需要記錄訪問者的信息,在PHP中提供了兩種方便的手段:session和cookie功能.為了永久的保持用戶信息,則cookie是最便捷的手段.在這里我將為大家詳細(xì)的講解cookie的功能及使用方法.
    2010-09-09
  • 用PHP編寫和讀取XML的幾種方式

    用PHP編寫和讀取XML的幾種方式

    今天我看了IBM的一些官方文檔和一些XML的相關(guān)資料,特把一些關(guān)鍵點以及PHP編寫和讀取XML的一些實例整理出來,方便以后使用
    2013-01-01
  • PHP數(shù)組函數(shù)知識匯總

    PHP數(shù)組函數(shù)知識匯總

    什么是數(shù)組?數(shù)組就是被命名的用來存儲一系列數(shù)值的地方。這篇文章主要匯總了PHP數(shù)組函數(shù)最基礎(chǔ)的知識點,感興趣的小伙伴們可以參考一下
    2016-05-05
  • php目錄遍歷函數(shù)opendir用法實例

    php目錄遍歷函數(shù)opendir用法實例

    這篇文章主要介紹了php目錄遍歷函數(shù)opendir用法,以實例形式詳細(xì)分析了opendir原理與用法,是PHP進(jìn)行目錄操作的一個重要函數(shù),需要的朋友可以參考下
    2014-11-11
  • Phar反序列化超詳細(xì)介紹

    Phar反序列化超詳細(xì)介紹

    這篇文章主要為大家介紹了PHP開發(fā)技巧之PHAR反序列化詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • PHP代碼審核的詳細(xì)介紹

    PHP代碼審核的詳細(xì)介紹

    本篇文章是對PHP代碼審核進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • 一個簡單的php路由類

    一個簡單的php路由類

    這篇文章主要為大家詳細(xì)介紹了一個簡單的php路由類,感興趣的小伙伴們可以參考一下
    2016-05-05
  • php數(shù)組函數(shù)序列之a(chǎn)rray_pop() - 刪除數(shù)組中的最后一個元素

    php數(shù)組函數(shù)序列之a(chǎn)rray_pop() - 刪除數(shù)組中的最后一個元素

    定義和用法array_pop() 函數(shù)刪除數(shù)組中的最后一個元素。
    2011-11-11
  • 探討PHP刪除文件夾的三種方法

    探討PHP刪除文件夾的三種方法

    本篇文章是對PHP刪除文件夾的三種方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06

最新評論