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

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

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

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

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

0xbf;id 或 0xbf'id

經(jīng)過php的escapeshellcmd單字節(jié)轉(zhuǎn)碼之后將會是

0xbf5c;id

0xbf5c'id

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

[0xbfbc];id

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

 [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,可以看到在不設(shè)置LANG為GBK的時候渴且桓齜欠ǖ膅b2312編碼,所以會被認(rèn)為是兩個字符,所以其中含有的0x5c起作用,被認(rèn)為命令沒結(jié)束。然后我們設(shè)置編碼為GBK,烤突岜蝗銜且桓鱟址磂cho了。

那我們?nèi)绾蝸碜C明php的漏洞呢,拿

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

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

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

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