最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP 小心urldecode引發(fā)的SQL注入漏洞

 更新時(shí)間:2011年10月27日 10:44:05   作者:  
在我初學(xué) PHP 的時(shí)候,看的是學(xué)校圖書館的一本爛書,里面根本就沒寫 PHP 在處理表單的時(shí)候會(huì)自動(dòng) urldecode,所以自己用 urldecode 函數(shù)來解碼
Ihipop 學(xué)校的 Discuz X1.5 論壇被黑,在那里吵了一個(gè)下午。Google 一下“Discuz! X1-1.5 notify_credit.php Blind SQL injection exploit”,你就知道。

Discuz 是國內(nèi)很流行的論壇系統(tǒng),被黑的網(wǎng)站應(yīng)該會(huì)很多吧。不過我對(duì)入侵別人的網(wǎng)站不感興趣,同時(shí)也鄙視那些代碼都不會(huì)寫只會(huì)使用別人放出的工具攻擊的所謂的“黑客”。


粗略看了一下代碼,這個(gè) SQL 注入漏洞是 urldecode 函數(shù)造成的。在 PHP 手冊(cè)中,urldecode 函數(shù)下面有一個(gè)警告:

The superglobals $_GET and $_REQUEST are already decoded. Using urldecode() on an element in $_GET or $_REQUEST could have unexpected and dangerous results.

而 Discuz 的開發(fā)人員(估計(jì)是新手)畫蛇添足,多加了一個(gè) urldecode:
復(fù)制代碼 代碼如下:

foreach($_POST as $k => $v) {
$value = urldecode($v);
$this->setParameter($k, $value);
}

單引號(hào)被 urlencode 兩次以后是 %2527,然后 POST,PHP 內(nèi)部在生成全局變量 $_POST 的時(shí)候會(huì)先 urldecode,得到 %27,然后 PHP 會(huì)檢查 Magic Quotes 的設(shè)置,但是無論是否開啟 Magic Quotes,%27 都不會(huì)被 addslashes,因?yàn)檫@時(shí)根本沒有單引號(hào)。但是這時(shí)如果你在 PHP 代碼中畫蛇添足的加上 urldecode,%27就變成單引號(hào)了,然后……你懂的。

在我初學(xué) PHP 的時(shí)候,看的是學(xué)校圖書館的一本爛書,里面根本就沒寫 PHP 在處理表單的時(shí)候會(huì)自動(dòng) urldecode,所以自己用 urldecode 函數(shù)來解碼(依稀記得書上好像也是這么寫的,真是誤人子弟啊)。

總結(jié)一下,就是:1、選擇一本好書非常重要;2、慎用 urldecode 函數(shù)。3、注意 PHP 手冊(cè)中的警告。
原文來自 http://demon.tw/programming/php-urldecode-sql-injection.html

相關(guān)文章

最新評(píng)論

南平市| 晋宁县| 大港区| 饶河县| 昭觉县| 思南县| 郎溪县| 柳河县| 朝阳市| 海淀区| 贵南县| 威远县| 诸暨市| 太谷县| 遵化市| 绵阳市| 舒兰市| 兰西县| 麻栗坡县| 武宣县| 武平县| 寿阳县| 邢台市| 郧西县| 崇信县| 松原市| 娄底市| 曲周县| 长汀县| 彭州市| 新竹市| 南昌县| 青河县| 怀宁县| 云龙县| 沧源| 饶平县| 阜康市| 循化| 瑞安市| 河池市|