日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

php escapeshellcmd多字節(jié)編碼漏洞(3)_PHP教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:詳細講解PHP中緩存技術的應用
PHP,一門最近幾年興起的web設計腳本語言,由于它的強大和可伸縮性,近幾年來得到長足的發(fā)展,php相比傳統(tǒng)的asp網站,在速度上有絕對的優(yōu)勢,想mssql轉6萬條數據php如需要40秒,asp不下2分鐘.但是,由于

大家可以看到,在php的處理過程中,它是單字節(jié)處理的,它只把輸入當作一個字節(jié)流,而在linux設置了GBK字符集的時候,它的處理是雙字節(jié)的,大家的理解很明顯地不一致。我們查下GBK的字符集范圍為8140-FEFE,首字節(jié)在 81-FE 之間,尾字節(jié)在 40-FE 之間,而一個非常重要的字符的編碼為5c,在GBK的尾字節(jié)范圍之內,這樣我們考慮一個特殊的輸入:

0xbf;id 或 0xbf'id

經過php的escapeshellcmd單字節(jié)轉碼之后將會是

0xbf5c;id

0xbf5c'id

注意0xbf5c是一個合法的GBK編碼,那么在linux執(zhí)行的時候,會認為輸入是

[0xbfbc];id

很好,后面的id將會被執(zhí)行�?梢宰鰝簡單的實驗,如下:

 [loveshell@Loveshelltmp]$echo?lt;br />>
?
[loveshell@Loveshelltmp]$set|grep-ilang
LANG=zh_CN.GB2312
LANGVAR=en_US.UTF-8
[loveshell@Loveshelltmp]$exportLANG=zh_CN.GBK
[loveshell@Loveshelltmp]$echo?lt;br />?lt;br />[loveshell@Loveshelltmp]$set|grep-ilang
LANG=zh_CN.GBK
LANGVAR=en_US.UTF-8
[loveshell@Loveshelltmp]$

其中康謀嗦胛?xbf5c,可以看到在不設置LANG為GBK的時候渴且桓齜欠ǖ膅b2312編碼,所以會被認為是兩個字符,所以其中含有的0x5c起作用,被認為命令沒結束。然后我們設置編碼為GBK,烤突岜蝗銜且桓鱟址磂cho了。

那我們如何來證明php的漏洞呢,拿

<?php
$e=escapeshellcmd($_GET[c]);
//herewedon'tcareif$ehasspaces
system("echo$e");
?>

作為例子,正常情況下上面的代碼工作很好,我們提交

分享:利用PHP V5開發(fā)多任務應用程序
許多 PHP 開發(fā)人員認為,由于標準的 PHP 缺少線程功能,因此實際 PHP 應用程序不可能執(zhí)行多任務處理。例如,如果應用程序需要其他 Web 站點的信息,那么在遠程檢索完成之前它都必須停止。這是錯

共3頁上一頁123下一頁
來源:模板無憂//所屬分類:PHP教程/更新時間:2008-08-22
相關PHP教程