好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > eval(cmd)與eval($cmd)的區別與聯系

eval(cmd)與eval($cmd)的區別與聯系

熱門標簽:天津電銷外呼系統違法嗎 滄州電銷外呼系統價格 合肥ai電銷機器人費用 銀行信貸電話機器人 手機外呼系統什么原理 上海400客服電話怎么申請 凱立德地鐵站地圖標注 溫州外呼系統招商 400電話個人能不能辦理

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

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

先看三個命令:

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

A結果:

B結果:

報錯

思考:

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

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

結果:


發現是可以執行的。

后話:

關于這個點,還需要補充一個:

內置函數在eval里面直接執行時不需要加分號,看兩個命令就知道了:

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

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

理解一下命令執行中的閉合:

看代碼:

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

看看結果:

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

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

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

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

那我們的playload應該是:

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

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

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

學習了~

您可能感興趣的文章:
  • php eval函數用法 PHP中eval()函數小技巧
  • php中eval函數的危害與正確禁用方法
  • python3中的eval和exec的區別與聯系
  • eval與window.eval的差別分析
  • 淺析DataBinder.Eval和Eval的區別

標簽:七臺河 溫州 金華 酒泉 怒江 白城 洛陽 赤峰

巨人網絡通訊聲明:本文標題《eval(cmd)與eval($cmd)的區別與聯系》,本文關鍵詞  eval,cmd,與,的,區別,聯系,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《eval(cmd)與eval($cmd)的區別與聯系》相關的同類信息!
  • 本頁收集關于eval(cmd)與eval($cmd)的區別與聯系的相關信息資訊供網民參考!
  • 推薦文章