<em id="0a85b"><option id="0a85b"></option></em>

<abbr id="0a85b"></abbr>

      <nobr id="0a85b"></nobr>
        <tr id="0a85b"></tr>
        9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
        學習啦 > 學習電腦 > 電腦安全 > 系統安全 >

        PHP多字節編碼漏洞原理與實現

        時間: 加城1195 分享

          可能很多人不知道多字節編碼漏洞的本質和做法,我們可以用php實現,這篇文章主要介紹了PHP多字節編碼漏洞小結,需要的朋友可以參考下!

          漏洞本質:

          php 使用 php_escape_shell_cmd這個函數來轉義命令行字符串時是作為單字節處理的

          而當操作系統設置了GBK、EUC-KR、SJIS等寬字節字符集時候,將這些命令行字符串傳遞給MySQL處理時是作為多字節處理的

          先看個簡單的例子

          復制代碼代碼如下:

          header('Content-type: text/html; charset=gbk');

          //連接MySQL

          $conn = mysql_connect("localhost", "root", "");

          //選擇數據庫

          mysql_select_db("test", $conn);

          //設置字符集編碼

          mysql_query("SET CHARACTER SET 'gbk'", $conn);

          //創建DEMO表如果不存在

          mysql_query("CREATE TABLE IF NOT EXISTS `demo` (

          `uid` int(10) NOT NULL AUTO_INCREMENT,

          `username` varchar(32) NOT NULL,

          `password` varchar(32) NOT NULL,

          PRIMARY KEY (`uid`)

          ) ENGINE=MyISAM DEFAULT CHARSET=gbk AUTO_INCREMENT=1;", $conn);

          //插入個測試數據

          mysql_query("REPLACE INTO `demo` VALUES('','admin','admin888') ",$conn);

          //獲取用戶輸入

          $username = isset($_REQUEST['username']) ? $_REQUEST['username'] : '';

          //執行查詢并且DEBUG

          $sql = "SELECT * FROM demo WHERE username = '{$username}' LIMIT 1";

          echo "sql: ".$sql."

          ";

          $res = mysql_query($sql, $conn);

          $row = mysql_fetch_array($res);

          echo "result:

          ";

          var_dump($row);

          ?>

          當GPC=OFF時:

          username未經任何過濾,這是個典型的字符型SQL注入

          測試地址:

          http://localhost/gbk.php?username=' or 1%23

          http://localhost/gbk.php?username=' or 0%23

          當然很多情況下GPC=OFF時候都會使用一些函數來過濾用戶的輸入

          復制代碼代碼如下:

          // 對用戶傳入的變量進行轉義操作

          if (!get_magic_quotes_gpc())

          {

          $username = addslashes($username);

          }

          看上去貌似沒問題了,但是由于多字節編碼問題,同樣還是可以注入的

          測試地址:http://localhost/gbk.php?username=%df%27

          使用mysql_real_escape_string函數對用戶輸入進行轉義存在同樣的問題

          目前的很多開源的系統都是通過設置客戶端的字符集為二進制來防止多字節編碼問題的。

          //使用上面這句來替換DEMO中的 mysql_query("SET CHARACTER SET 'gbk'", $conn);

          mysql_query("SET character_set_connection=gbk, character_set_results=gbk, character_set_client=binary", $conn);

          再次測試:http://localhost/gbk.php?username=%df%27

          OK,這樣一來,多字節編碼問題就不存在了嗎?不見得

          當使用mb_convert_encoding、iconv對字符集進行錯誤的轉換時候,漏洞再次的出現了(GPC=ON時問題同樣存在)

          例如:

          $username = iconv('gbk','utf-8',$username);

          或

          $username = mb_convert_encoding($username,'utf-8','gbk');

          來看下T00ls上看到的ECSHOP 2.6.x/2.7.x GBK版本的漏洞吧

          漏洞文件在api/checkorder.php line 28

          復制代碼代碼如下:

          $sql = "SELECT COUNT(*) ".

          " FROM " . $ecs->table('admin_user') .

          " WHERE user_name = '" . trim($_REQUEST['username']). "' AND password = '" . md5(trim($_REQUEST['password'])) . "'";

          我們來看下$_REQUEST['username'] 的獲取過程

          復制代碼代碼如下:

          $_REQUEST['username'] = json_str_iconv($_REQUEST['username']);

          json_str_iconv()這個函數在includes/lib_base.php中定義,其功能是將非UTF-8編碼的字符串進行轉換,然后return ecs_iconv('utf-8', EC_CHARSET, $str);

          ecs_inonv這個函數也在 includes/lib_base.php中定義,看下函數吧:

          function ecs_iconv($source_lang, $target_lang, $source_string = '')

          {

          static $chs = NULL;

          /* 如果字符串為空或者字符串不需要轉換,直接返回 */

          if ($source_lang == $target_lang || $source_string == '' || preg_match("/[\x80-\xFF]+/", $source_string) == 0)

          {

          return $source_string;

          }

          if ($chs === NULL)

          { require_once(ROOT_PATH . 'includes/cls_iconv.php');

          $chs = new Chinese(ROOT_PATH);

          }

          return $chs->Convert($source_lang, $target_lang, $source_string);

          }

          先是引入了includes/cls_iconv.php這個文件,然后實例化了Chinese這個類,在調用類的Convert的方法見line 127

          $string = $this->_convert_iconv_mbstring($this->SourceText, $this->config['target_lang'], $this->config['source_lang']);

          又調用了另外一個函數_conver_iconv_mbstring見line 278

          //這里錯誤的吧字符集從gbk轉為了utf8,所以漏洞產生了

          $return_string = @mb_convert_encoding($string, $target_lang, $source_lang);

          補充:校園網安全維護技巧

          校園網絡分為內網和外網,就是說他們可以上學校的內網也可以同時上互聯網,大學的學生平時要玩游戲購物,學校本身有自己的服務器需要維護;

          在大環境下,首先在校園網之間及其互聯網接入處,需要設置防火墻設備,防止外部攻擊,并且要經常更新抵御外來攻擊;

          由于要保護校園網所有用戶的安全,我們要安全加固,除了防火墻還要增加如ips,ids等防病毒入侵檢測設備對外部數據進行分析檢測,確保校園網的安全;

          外面做好防護措施,內部同樣要做好防護措施,因為有的學生電腦可能帶回家或者在外面感染,所以內部核心交換機上要設置vlan隔離,旁掛安全設備對端口進行檢測防護;

          內網可能有ddos攻擊或者arp病毒等傳播,所以我們要對服務器或者電腦安裝殺毒軟件,特別是學校服務器系統等,安全正版安全軟件,保護重要電腦的安全;

          對服務器本身我們要安全server版系統,經常修復漏洞及更新安全軟件,普通電腦一般都是撥號上網,如果有異常上層設備監測一般不影響其他電腦。做好安全防范措施,未雨綢繆。

          相關閱讀:提高服務器安全性的技巧

          1.經常更改系統管理員密碼。---->且密碼最好是大小寫都有

          2.定期更新系統補丁。---->開啟自動更新,并設定到晚上重啟。

          3.檢查系統是否多出超級管理員,檢查是否有帳號被克隆在“開始”>運行中輸入“cmd”>在輸入 net localgroup administrators

          4.在“開始”>運行中輸入“msconfig”檢查隨機啟動的程序和服務,關掉不必要的隨機啟動程序和服務。

          5.服務器上的所有程序盡量安裝程序的最新穩定版。

          6.檢查SERVU是否被創建有執行權限的用戶或者對C盤有讀寫權限的用戶,并且給SERVU設置一個登錄密碼。如果需要請給serv_u設置獨立啟動賬戶。

          7.不要隨意安裝任何的第三方軟件。例如XX優化軟件,XX插件之類的,更不要在服務器上注冊未知的組件。

          8.不要隨意在服務器上使用IE訪問任何網站,杜絕隱患那是必須的。

          9. 檢查系統日志的“安全性”條目,在右側查看近期“審核成功”的登錄

          10.不要在服務器上雙擊運行任何程序,不然怎么中了木馬都不知道。

          11.不要在服務器上用IE打開用戶的硬盤中的網頁,這是危險的行為。

          12.不要在服務器上瀏覽圖片,以前windows就出過GDI 的安全漏洞。

          13.及時的更新病毒庫,查殺病毒。

          14.定時的查看系統各個盤符的磁盤權限,是否為設定的安全權限。

          15.確保你自己的電腦安全,如果自己的電腦不安全,服務器也可能不太安全。


        編碼漏洞相關文章:

        1.網絡安全技術的總結

        2.解決防火墻規則順序和插入規則到指定序號的問題

        3.如何解決qq賬號被盜問題

        4.網站個人滲透技巧與防范有哪些

        5.簡單木馬分析與防范

        4016560 主站蜘蛛池模板: 久久久久亚洲av成人网址| 亚洲精品天堂无码中文字幕| 国产精品无遮挡又爽又黄| gogogo在线播放中国| 国产精品欧美亚洲韩国日本| 被拉到野外强要好爽| 野花韩国电影免费观看在线| 日韩熟女精品一区二区三区| 色综合视频一区二区三区| 精品亚洲欧美高清不卡高清| 日韩精品成人网页视频在线| 天天在线看无码AV片| 精选国产av精选一区二区三区| 熟妇与小伙子露脸对白| 久热久热久热久热久热久热| 99久久免费精品色老| 国产av仑乱内谢| 亚洲成a人片77777kkkk| 四虎永久免费高清视频| 亚洲人亚洲人成电影网站色| 亚洲欧美日韩精品久久| 草草浮力影院| 中文字幕精品亚洲四区| 99精品国产精品一区二区| 国产免费无遮挡吸奶头视频| 人妻内射一区二区在线视频| 九九热视频在线播放| 国产老头多毛Gay老年男| 亚洲熟妇AV午夜无码不卡| 人妻少妇久久精品一区二区| 东京热大乱系列无码| 老司机精品一区在线视频| 亚洲国模精品一区二区| 亚洲综合色区无码专区| 国产av中文字幕精品| 在线日本看片免费人成视久网| 久久狠狠高潮亚洲精品夜色| 蜜桃视频成人专区在线观看| 综合久青草视频在线观看| 东京热av无码电影一区二区| 97色伦97色伦国产|