版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
PHP全解1- 全解(一)-PHP網(wǎng)頁的安全性問題 方式1、命令注入(CommandInjection)2、eval注入(EvalInjection)4、跨(CrossSiteScripting,XSS)5、SQL注入(SQLinjection)6、跨請求(CrossSiteRequestForgeries,CSRF)7、Session會話劫持(SessionHijacking)8、Session固定(Session9、HTTP響應(yīng)拆分(HTTPResponseSplitting)10、文件上傳(FileUploadAttack) 穿越(DirectoryTraversal)12、文件包含(RemoteInclusion)13、動態(tài)函數(shù)注入(DynamicVariableEvaluation)14、URL(URLattack)15、表單提交(SpoofedFormSubmissions)16、HTTP請求(SpoofedHTTPRequests)幾個重要的php.ini選Register全解(二)-命令注入命令注入system、exec、passthru、s_exec、“(與s_exec功能相同)stringsystem(stringcommand,intcommand要執(zhí)行return_var存放執(zhí)行命令的執(zhí)行后的狀態(tài)stringexec(stringcommand,array&output,intcommand要執(zhí)行output獲得執(zhí)行命令輸出的每一行字符return_var存放執(zhí)行命令后的voidpassthru(stringcommand,intcommand要執(zhí)行return_var存放執(zhí)行命令后的string _exec(stringcommand要執(zhí)行實例$dir=$_GET["dir"];if(isset($dir)){echo"<pre>";system("ls-al".$dir);echo"</pre>";}我們提交 提交以后,命令變成了system("ls-al|cateval注入mixedeval(stringcode_str)//eval注入一般發(fā)生在者能控制輸入的字符串的時$var=if{$arg=$_GET["arg"];eval("\$var=$arg;");echo"\$var=".$var;} 動態(tài)函數(shù)funcA(){}func{}if{$myfunc=$_GET["func"];echo$myfunc();}程序員原意是想動態(tài)調(diào)用A和B函數(shù),那我們提交htt /ex.php?func=phpinfo漏防范方法3、使用escapes arg函數(shù)來處理命令參數(shù)4、使用safe_mode_exec_dir指定可執(zhí)行文件的路 arg函數(shù)會將任何引起參數(shù)或命令結(jié)束的字符轉(zhuǎn)義,單引號“’”,替換成“\’”,雙引號“"”,替用 指定可執(zhí)行文件的路徑,可以把會使用令提前放入此路徑safe_mode_exec_dir= 漏洞全解(三)-植客戶端植客戶端植入(ScriptInsertion),是指將可以執(zhí)行的插入到表單、、動畫或超文字等對象內(nèi)。當(dāng)用戶打開這些對象后,者所植入的就會被執(zhí)行,進而開始??梢员挥米髦踩氲腍TML一般包括以下幾種1、<script>標記的javascript和vbscript等頁面程序。在<script>內(nèi)可以指定js程序代碼,也可以在src屬性內(nèi)指定js文件的URL路徑3、<embed>標記的對象。這些對象是多文件,例如:swf文件。通常在src屬性內(nèi)指定對象客戶端植入的步1、者普通用戶后登陸實CREATETABLE`postmessage``id`int(11)NOTNULL`subject`varchar(60)NOTNULLdefault`name`varchar(40)NOTNULLdefault `varchar(25)NOTNULLdefault`postdate`datetimeNOTNULLdefault’0000-00-00PRIMARYKEYENGINE=MyISAMDEFAULTCHARSET=gb2312COMMENT=’使用者的留言AUTO_INCREMENT=69//add.php插入留//list.php留言列//show.php顯示留插入> ";</script>跳轉(zhuǎn)頁面或者使用其他自行構(gòu)造的js代碼進行防范的方法stringhtmlspecialcharsstringstring,intquote_stylestringcharset)string是要編碼的字符串qoestye可選值可為PAEN_QOESEN_OUOESPA,EN_QOESEN_NQOTES,charset可選,表示使用的字符&—->&"—->‘—-><—->>—-><?phpechohtmlspecialchars(nl2br($row['question']),ENT_QUOTES);全解(四)-xss跨站跨縮寫為XSS 么他就可以成此用戶來登錄,獲得此用戶的權(quán)限。2、目標用戶登錄此,在登陸期間打開了者發(fā)送的xss3、執(zhí)行了此xss4、目標用戶頁面跳轉(zhuǎn)到者的,者取得了目標用戶的信5、者使用目標用戶的信息登錄,完似htt ;</script>,誘騙用戶點擊后,可以獲取用戶s防范方法stringhtmlspecialchars(stringstring,intquote_style,stringstring是要編碼的字符quote_style可選,值可為 charset可選,表示使用的字符集函數(shù)會將下列特殊字符轉(zhuǎn)換成html編碼&—->&"—->"‘—-><—->>—-><formaction="<?phpecho$_SERVER["PHP_SELF"];?>" get.php中上述的表單. .. .
<formaction=""全解(五)-SQL注入SQL注入果web程序沒有對提交的數(shù)據(jù)經(jīng)過檢查,那么就會造成sql注入。SQL注入的一般步驟實CREATETABLE`postmessage``id`int(11)NOTNULL`subject`varchar(60)NOTNULLdefault`name`varchar(40)NOTNULLdefault `varchar(25)NOTNULLdefault`postdate`datetimeNOTNULLdefault’0000-00-00PRIMARYKEYENGINE=MyISAMDEFAULTCHARSET=gb2312COMMENT=’運用者的留言AUTO_INCREMENT=69grantallprivilegesonch3.*to‘sectop’@localhostidentifiedby//add.php插入留//list.php留言列//show.php顯示留頁 .cn/show.php?id=71and//show.php12-15//mysql查詢語$query="select*frompostmessagewhereid=$result=ordie("ySQL查詢語句失?。篴nd1=1,語select*frompostmessagewhereid71and1=1這語句前值后值都為真,and以后也為真,返回查詢到的數(shù)據(jù)and1=2,語select*frompostmessagewhereid71and1=2這語句前值為真,后值為假,and以后為假,查詢不到任何數(shù)據(jù)正常的SQL查詢,經(jīng)過我們構(gòu)造的語句之后,形成了SQL注入。通過這個注入點,我們還可以進一步拿到權(quán)限,比如說運用union管理,數(shù)據(jù)庫信息,或者用mysql的load_file,intooutfile等函數(shù)進一步滲透。防范方法整型參數(shù)intval函數(shù)將數(shù)據(jù)轉(zhuǎn)換成整數(shù)intintval(mixedvar,intbase,可選,是基礎(chǔ)數(shù),默認是浮點型參數(shù)運用floatvaldoubleval函數(shù)分別轉(zhuǎn)換單精度和雙精度浮點型參數(shù)intfloatval(mixedintdoubleval(mixedvar是要轉(zhuǎn)換的變量stringaddslashes(stringstr是要檢查的字符//mysql查詢語$query="select*frompostmessagewhereid=$result=ordie("ySQL查詢語句失敗:{$var=}{$var=} 漏洞全解(六)-請跨請求CSRF(CrossSiteRequestForgeries),意為跨請求,也有寫為XSRF。者目標用戶擊者利用隱蔽的HTTP連接,讓目標用戶在不注意的情況下單擊這個,由于是用戶自己點擊的,而他又是合法用戶擁有合法權(quán)限,所以目標用戶能夠在內(nèi)執(zhí)行特定的HTTP,從而達到者的目的。例如:某個購物商品時,采用/buy.php?item=watch&num=1,item參數(shù)確定要什么物品,num參數(shù)確定要數(shù)量,如果者以隱藏的方式發(fā)送給目標用戶<imgsrc="h 以后,的數(shù)量就成了1000個實 if{$ID_Dele=$sql="deletefrombookwhereidin(".$ID_Dele.")";}{$sql="deletefrombookwhereid=".$id傳遞要刪除ID}echoscriptlanguage=’javascript’>";echo"alert(‘刪除成功!’);";echo"echo<imgsrc="delbook.php?id=2"<imgsrc="delbook.php?id=3"<imgsrc="delbook.php?id=4"<imgsrc="delbook.php?id=5"插入4張分別刪除4個id留言,然后我們返回首頁瀏覽看,沒有什么變化。。顯示不了者在留言中插入隱藏的,此具有刪除留言的作用,而者自己這些的時候,是不具限的,所以看不到任何效果,但是當(dāng)管理員登陸后,查看此留言,就會執(zhí)行隱藏的,{$copyright=$_POST["copyright"]."<br/>設(shè)計制作:<ahref {$sql="updategly."’where}{$sql="updategly."’,copyright=’".$copyright."’where}echoscriptlanguage=’javascript’>";echo"alert(‘修改成功!’);";echo"echo}這個文件用于修改管理和設(shè)置的一些信息,我們可以直接構(gòu)造如下表單<formaction=""method="post"name="form1"<inputtype="radio"value="1"<inputtype="radio"name="sh"checked<inputtype="text"name="username"<inputtype="password"name="password"<inputtype="text"name="title"value="隨緣PHP留言V1.0(帶審核功能<textareaname="gg"rows="6"cols="80">安裝使用隨緣網(wǎng)絡(luò)PHP留言板V1.0(帶審核<textareaname="copyright"rows="6"cols="80">隨緣網(wǎng)絡(luò)PHP留言本V1.0:廈門隨緣網(wǎng)絡(luò)科技2005-2009<br/>承接建設(shè)及系統(tǒng)定制提供主機</textarea>存為attack.html,放到自己上htt 藏這個,管理以后,他的用戶名和全部修改成了root防范方法3、使用POST,不要使用在 {){$serverhost= = = if(strncmp($sourcehost,$serverhost,{echoscriptlanguage=’javascript’>";echo"alert(‘?dāng)?shù)據(jù)來源異常!’);";& echo"echo}}$copyright=$_POST["copyright"]."<br/>設(shè)計制作:<ahref {$sql="updategly."’where}{$sql="updategly."’,copyright=’".$copyright."’where}echoscriptlanguage=’javascript’>";echo"alert(‘修改成功!’);";echo"echo}檢查內(nèi)置隱藏變量{if{//$post_id=md5(uniqid(rand(),//Session變$_SESSION["post_id"]=}//檢查是否相if{//if($_SESSION["post_id"]!={//POST變echoscriptlanguage=’javascript’>";echo"alert(‘?dāng)?shù)據(jù)來源異常!’);";echo"echo}}<inputtype="resetname="Submit2value重置<inputtype="hidden"name="post_id"value="<?phpecho}使用POST,不要使用傳遞表單字段時,一定要是用POST,不要使用GET,處理變量也不要直接使用PHP漏洞全解(七)-Session劫持服務(wù)端和客戶端之間session(會話)來連接溝通。當(dāng)客戶端的瀏覽器連接到服務(wù)器后,服務(wù)器就會是由一個獨特的字符sessionid。用戶發(fā)出請求時,所發(fā)送的http表頭內(nèi)包含sessionid的值。服務(wù)器使用http表頭內(nèi)的sessionid來識別時哪個用戶提交的請求。session保存的是每個用戶的個人數(shù)據(jù),一般的web應(yīng)用程序會使用session來保存通過驗證的用戶賬號和。在轉(zhuǎn)換不同的網(wǎng)頁時,如果需要驗證用戶,就是用session內(nèi)所保存的賬號和來比較。session的生命周期從用戶連上服務(wù)器后開始,在用戶關(guān)掉瀏覽器或是注銷時用戶session_destroy函數(shù)刪session數(shù)據(jù)時結(jié)束。如果用戶20分鐘內(nèi)沒有使用計算機的動作,session也會自動結(jié)束。php處理session的應(yīng)用架構(gòu)會話劫持會話劫持是指者利用各種來獲取目標用戶的sessionid。一旦獲取到sessionid,那么者可以利用目標用戶的來登錄,獲取目標用戶的操作權(quán)限。1):嘗試各種sessionid,直到為止計算:如果sessionid使用竊取:使用網(wǎng)絡(luò)截獲,xss等方法獲會話劫持的步實if{$link=mysql_connect("localhost","root",ordie("無法MySQL數(shù)據(jù)庫連接:mysql_error());mysql_select_db("cms")ordie("無法選擇MySQL數(shù)據(jù)庫if{$query="select*frommemberwhereusername=’". "’andpassword=’".addslashes($_POST["password"]).}{$query="select*frommemberwhereusername=’".$_POST["username"]"’andpassword=’".$_POST["password"].}$result=ordie("MySQL查詢語句失敗:$match_count=mysql_num_rows($result);if($match_count){$_SESSION["username"]=$_SESSION["password"]=$_SESSION["book"]=1; }//Session訪客的SessionID是:<?phpechosession_id訪客:<?phpechohtmlspecialchars($_GET["user"],ENT_QUOTES);book商品的數(shù)量:<?phpechohtmlspecialchars($_SESSION["book"],ENT_QUOTES);$_SESSION["username保存賬$_SESSION["password#_SESSION["book"]保存商品數(shù)//Sessionecho目標用戶SessionID是:session_idbrecho目標用戶username是:$_SESSION["usernamebrechopassword是:$_SESSION["passwordbr//book的數(shù)量設(shè)置$_SESSION["book"]=提交此ID為獲取session固定可以使用把sessionid發(fā)給用戶的然 者 防范方法session函數(shù)boolsession_regenerate_id([boolindex.php開頭加2)更改session的名稱session的默認名稱是PHPSE,此變量會保存在 中,如果不抓包分析,就不能猜到這個session透明化sessionid指當(dāng)瀏覽器中的http請求沒有使用 s來制定sessionid時,sessioinid使用來傳遞;打開php.ini,編輯session.use_trans_sid=int_set("session.use_trans_sid",0); session.use_s=1表示使 s存放sessionsession.use_only_s=1表示只使用 s存放sessionid,這可以避免session固定 int_set("session.use_only_s",1);p>5)使用URL傳遞隱藏參數(shù)$seid=md5(uniqid(rand()),$_SESSION["seid"]=否是web程序自己調(diào)用的。PHP漏洞全解(八)-HTTP響應(yīng)拆分HTTP請求的格式/面例子發(fā)送HTTP請求給服務(wù)器GET/index.phpHTTP/1.1↙ //↙↙符號表示回車鍵,在空白行之后還要在按一個空格才會發(fā)送HTTP請求,HTTP請求的表頭中只Host表頭是必要的餓,其余的HTTP表頭則是根據(jù)HTTPHTTP請求的方法HEAD:與GETPOST:發(fā)送數(shù)據(jù)給服務(wù)器處理,數(shù)據(jù)包含在HTTPOPTIONS:返回服務(wù)器所支持的HTTP請求CONNECT:將HTTP請求的連接轉(zhuǎn)換成透明的TCP/IP通HTTP響應(yīng)的格式服務(wù)器在處理完客戶端所HTTP請求后,會發(fā)送下列響應(yīng)HTTP/1.1200HTTP請求和響應(yīng)的例子打開cmd輸 net,輸入 GET/index.php↙返回HTTP響應(yīng)的表PHP來發(fā)送HTTP請求voidheader(stringstringboolreplaceinthttp_response_code]])string是HTTP表頭的字符串為http_response_codeHTTP響應(yīng)碼使用http_response_code的值//Internetsocket連$fp= HTTPfputs($fp,"GET/HTTP/1.1\r\n");fputs($fp,"Host: while{//256位的HTTP響應(yīng)字符}//Internetsocket連HTTPechoHTTP響應(yīng)拆分HTTP響應(yīng)拆分是由于者經(jīng)過精心設(shè)計利用電子郵件或者,讓目標用戶利用一個請求產(chǎn)生兩個響應(yīng),前一個響應(yīng)是服務(wù)器的響應(yīng),而后一個則是者設(shè)計的響應(yīng)。此之所以會發(fā)生,是因為WEB程序?qū)⑹褂谜叩臄?shù)據(jù)置于HTTP響應(yīng)表頭中,這些使用者的數(shù)據(jù)是有者精心設(shè)計的??赡蹾TTP請求響應(yīng)拆分的函數(shù)包括以下幾個 HTTP響應(yīng)拆分通常發(fā)生在:Set-表頭:將使用者的數(shù)據(jù)寫入 header("Location:".GET/location.php?page=h Host:localhost↙HTTP/1.1302Date:Wed,13Jan201003:44:24Server:Apache/2.2.8(Win32)PHP/5.2.6X-Powered-By:PHP/5.2.6Location:hContent-Length:0Keep-Alive:timeout=5,max=100Connection:Keep-AliveContent-Type:.Content-Typetext/htmlH
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 超市經(jīng)營合同三篇
- 醫(yī)用電子儀器設(shè)備相關(guān)行業(yè)投資方案范本
- 市場定位與品牌戰(zhàn)略計劃
- 新型地?zé)嵊脽峤粨Q器相關(guān)項目投資計劃書
- UV激光切割機相關(guān)行業(yè)投資規(guī)劃報告范本
- 大孔燒結(jié)空心磚相關(guān)行業(yè)投資規(guī)劃報告
- 結(jié)合地方文化的藝術(shù)課程設(shè)計計劃
- 汽車廠生產(chǎn)線升級改造工程合同三篇
- 葡萄運輸合同三篇
- 設(shè)計優(yōu)化培訓(xùn)
- 施工現(xiàn)場安全文明施工管理處罰細則
- 2024版國開電大法律事務(wù)??啤睹穹▽W(xué)(1)》期末考試總題庫
- 重慶洪崖洞旅游營銷策劃
- 消費者調(diào)查訪談提綱模板
- 山東建筑大學(xué)混凝土結(jié)構(gòu)原理期末考試復(fù)習(xí)題
- 永康電動工具市場行業(yè)報告
- 消化道腫瘤的診斷和治療
- 護理病例報告范文5篇
- 班主任基本功大賽:模擬情景題及參考答案匯編(小學(xué)組)
- 嵌入式基礎(chǔ)實訓(xùn)報告
- 衛(wèi)生院關(guān)于落實國家組織藥品集中采購使用工作實施方案
評論
0/150
提交評論