国产三级农村妇女在线,国产精品毛片a∨一区二区三区,国产乱子伦视频大全,国产精品色拉拉,国产欧美日韩一区二区三区,

首頁 > 技術(shù) > IOS開發(fā)

eval(cmd)與eval($cmd)的區(qū)別與聯(lián)系

IOS開發(fā) 2023-02-16 22:19:41

這個問題一直困擾我許久,今天終于解決清楚了

問題1:eval的執(zhí)行是否需要雙引號包括:

先看三個命令:

A:<?php eval(system(dir))?>
B:<?php
	$cmd="system(dir)"; 
	eval($cmd)?>

A結(jié)果:

在這里插入圖片描述

B結(jié)果:

在這里插入圖片描述

報錯

思考:

同樣是一個命令,為什么會出現(xiàn)如此區(qū)別,詢問了其他師傅得知:eval執(zhí)行的是變量的值的時候,該變量值需要閉合,也就是必須是一個完整的語句,需要用分號結(jié)尾。根據(jù)這個道原理我們改一下上面的命令看看:

<?php
	$cmd="system(dir);"; 
	eval($cmd)?>

結(jié)果:

在這里插入圖片描述
發(fā)現(xiàn)是可以執(zhí)行的。

后話:

關(guān)于這個點,還需要補充一個:

內(nèi)置函數(shù)在eval里面直接執(zhí)行時不需要加分號,看兩個命令就知道了:

eval(system(dir));
eval(system(dir););

在這里插入圖片描述

內(nèi)置函數(shù)不需要加分號,其實我覺得加不加分號都一樣,因為加了分號就要加引號,引號也帶有解析的意思

理解一下命令執(zhí)行中的閉合:

看代碼:

eval(system(dir));
eval(system(dir););

看看結(jié)果:

在這里插入圖片描述

這里可以并且后面語句是不影響解析的

<?php
	eval("system(dir);?>xyusaiqeqcyuqqwdnoqcq");
	?>

在這里插入圖片描述

我們這里都是不影響的,為什么?

如果我們是簡單的閉合eval這個命令

那我們的playload應(yīng)該是:

<?php 
	eval("system(dir));?>xyusaiqeqcyuqqwdnoqcq");
?>
上面的代碼我錯誤的理解成:
<?php 
	eval("system(dir)");?>
	xyusaiqeqcyuqqwdnoqcq");
?>

之前我錯誤的以為是這樣的閉合的,但是后來發(fā)現(xiàn)我錯了,直到在有一道題目中我發(fā)現(xiàn)這樣閉合不了,后面詢問了一下其他師傅,得到答案:

eval()這個函數(shù)可以理解成我們是將eval(字符串)這里面的字符串放到了一個新的php里面去運行,這個新的php本來就又 <?php 所以當(dāng)我們傳入 system(dir);?>dasdas的時候,?>就以及階段了php代碼

學(xué)習(xí)了~

TAg

加載中~

本網(wǎng)站LOGO受版權(quán)及商標(biāo)保護(hù),版權(quán)登記號:國作登字-2022-F-10126915,未經(jīng)湖南木星科技官方許可,嚴(yán)禁使用。
Copyright ? 2012-2022 湖南木星科技有限公司(木星網(wǎng))版權(quán)所有
轉(zhuǎn)載內(nèi)容版權(quán)歸作者及來源網(wǎng)站所有,本站原創(chuàng)內(nèi)容轉(zhuǎn)載請注明來源,商業(yè)媒體及紙媒請先聯(lián)系:aishangyiwan@126.com

工信部備案號:湘ICP備19012813號-5