`
wangdei
  • 浏览: 373084 次
社区版块
存档分类
最新评论

Hidden型参数变量未过滤导致的上传漏洞利用一则

阅读更多

http://www.lengmo.net/post/1218/

无意中看见一个图形设计网站,网站全部由静态asp构成,做得十分漂亮。感叹它设计精美的同时,不由心里嘀咕,全静态asp页面的确能防止注入漏洞的产生,但WEB漏洞不止注入这一种,我很想看看这个网站在其他漏洞的防范方面做得如何。

在Google上搜索了一阵,翻到了这个网站的一个上传页面,发现它没有做验证,任何人都可以上传图片文件,于是决定从这里入手。

试着上传.asp文件,直接跳出对话框(图1)

Highslide JS

查看源文件,可以看出是用JavaScript在本地做了限制。(图2)

Highslide JS



把源文件中的JavaScript代码全部删除,修改post的地址为绝对网址,之后另存为htm文件。再次上传.asp文件,几秒钟后出现结果如图3

Highslide JS



可以想到虽然程序没有禁止外部提交数据,但是文件在上传到服务器保存时又做了一遍验证,如果要保存的文件名后缀不合法,则拒绝执行。

以下是源代码中的相关部分(图4)

Highslide JS



继续,上传一个正常的图片文件并抓包。(如图5、6)

Highslide JS



Highslide JS



把抓包得到的数据与上传页面的源文件相对照

抓包数据,如图7

Highslide JS



源文件中对应部分如图8

Highslide JS



可以发现有很多隐藏的参数在里面,而这些参数的值默认都是空的。如果我们改变这些参数的值,结果会怎样呢?

把源文件中的“hidden”改为“text”,如图9

Highslide JS



保存后打开,如图10

Highslide JS



现在这些参数的值可以自己构造了

试验着改参数值上传了几次之后,摸到了一点规律。

把参数“mulu”对应的值改为asp.asp,试试上传gif后缀的asp小马

Highslide JS



上传成功

Highslide JS



由抓包的数据中找到上传路径,提交看看,

Highslide JS



出现了可爱的画面。

可以想到这个上传程序的运行方式是,在处理参数“mulu”的值的时候,如果值不为空则创建,于是就在服务器上创建了一个“asp.asp”目录。

以下是源代码中的相关部分

Highslide JS



可以看到对提交的变量只是简单的把“/”转换成了“\” ,其他没有做任何过滤。这里即漏洞所在。

Win2003存在着一个文件解析路径的漏洞,当文件夹名为类似asp.asp的时候(即文件夹名看起来像一个ASP文件的文件名),此时此文件夹下的文本类型的文件都可以在IIS中被当做ASP程序来执行,因此我们上传的xiaoma.gif被作为asp程序执行了。

之后就是写个大点的webshell进去,如图15

Highslide JS



结果出错,无法写入

Highslide JS



换了几个小马都是如此,看来不是小马的问题,可能FSO组件被禁用或者改名了。

直接上传大马不能执行

Highslide JS



Highslide JS



大概是服务器解析目录“asp.asp”的时候把这个目录当作了asp文件,因此出错。

为了看清楚些,把asp探针文件后缀改为gif传了上去。

Highslide JS



Highslide JS



这么看就明白了。

怎么突破呢?可以看到,虽然禁用了FSO组件,但是WScript.Shell组件和Shell.Application组件还在,我们可以用它们来读写文件,只要把用WScript.Shell组件或Shell.Application组件读写文件的webshell写到“asp.asp”以外的web目录里执行就可以了。

这里可以利用的写文件方法很多,如XML写文件,JMail写文件,ASPUpload上传都可以。这里我用ASPUpload上传。

构造两个文件“本地提交用.htm”和“upload.gif”,代码如图21

Highslide JS



upload.gif上传到服务器,本地提交用.htm 用于本地打开提交上传文件。

Highslide JS



Highslide JS



成功上传海洋顶端木马到上一层目录,并可以正常使用。

Highslide JS



服务器的权限设置不严,webshell可以浏览所有文件及目录,同时SERV-U为默认设置且没有设置管理密码,还是system启动服务运行的。(=_=!)

Highslide JS



很容易地利用SERV-U提升权限,并添加管理员用户sai52

Highslide JS



Highslide JS



本次检测到这里就结束了。这个网站安全方面外紧内松,程序员和管理员都有责任,不过我个人认为,主要还是管理员的责任<!---->

分享到:
评论

相关推荐

    PHP和ASP上传漏洞探究

    关键在于`filepath`变量,若攻击者能改变这个变量,将上传文件的路径指向服务器上的其他位置,例如`/newmm.asp`,那么原本应该存储在`uploadface`目录下的文件可能会被保存到`newmm.asp`后面指定的路径,从而可能...

    PHP程序常见漏洞攻击宝典

    例如,在处理表单提交的数据时,如果未对变量进行适当的验证和过滤,恶意用户可以通过构造特定的输入来触发漏洞或注入恶意代码。 #### HTTP请求方法的滥用 PHP允许通过HTTP请求(如GET和POST)接收数据,并且这些...

    先锋无组件上传类(无惧2.0杜绝上传漏洞修改版) v2004

    上传漏洞利用工具或者filepath变量利用工具(老兵的)...但是最基本的没改啊。。 而且很对网站的插件里有类似的漏洞,我要说的不要依赖哪些专门的工具 自己改WSE抓到的包里的filepath变量,然后在用NC提交。。。 就算...

    Web应用安全:将hidden参数的更改比作对话.pptx

    将hidden参数的更改比作对话 将hidden参数的更改比作对话 点击确认,使用Fiddler捕捉以下输入表单的响应报文 将hidden参数的更改比作对话 将hidden参数的更改比作对话 虽然在页面上看不到,但用户在前页面输入的值会...

    espcms csrf漏洞 导致任意管理员添加1

    CSRF漏洞通常发生在Web应用中,当一个受信任的用户在未完全退出登录状态时访问了一个恶意链接或加载了恶意网页。在这种情况下,恶意页面会提交一个伪造的表单请求,而这个请求会利用用户在目标网站上的权限进行操作...

    第二节 无防护的CSRF漏洞利用-01

    今天,我们将深入探讨无防护的CSRF漏洞利用,了解如何构造GET型和POST型CSRF攻击。 GET型CSRF代码分析 在GET型CSRF攻击中,攻击者可以通过构造特殊的URL,欺骗用户在当前已登录的Web应用上执行非法操作。例如,在...

    Web应用安全:将hidden参数的更改比作对话实验.pptx

    将hidden参数的更改比作对话实验 将hidden参数的更改比作对话 1、进入“输入-确认-注册页面” 将hidden参数的更改比作对话 2、填写相关注册信息 姓名填写“张三” 邮箱填写zhangsan@example.jp 性别填写“男” 点击...

    PHP程序的常见漏洞攻击分析.txt

    例如,如果用户提交了恶意数据(如SQL注入或命令执行尝试),而程序未进行适当的验证与过滤,则可能导致严重的后果。 #### 条件绕过攻击 条件绕过攻击是一种常见的漏洞类型,通常发生在开发者没有正确验证用户输入...

    Web应用安全:通过hidden隐藏域和URL参数文本.docx

    ### Web应用安全:通过hidden隐藏域和URL参数 #### 一、HTML隐藏域(hidden)概述 在Web开发中,为了确保用户体验与数据安全性,开发者常常需要利用特定的技术手段来达到某些目的,例如传递一些不应该直接展示给用户...

    a hidden markov model

    本文献介绍了一种基于隐藏马尔科夫模型(Hidden Markov Model, HMM)的协同过滤方法,该方法旨在处理用户偏好随时间变化的问题。传统推荐系统假设用户的偏好模式是静态不变的,这种假设在实践中往往过于理想化,尤其...

    PHP漏洞全解

    文件上传漏洞是指攻击者通过上传恶意文件到服务器,进而利用这些文件进行进一步的攻击行为。 **示例:** 攻击者上传包含恶意脚本的图片文件。 ##### 11. 目录穿越漏洞(Directory Traversal) **定义与原理:** ...

    Struts2-S2-029漏洞分析1

    Struts2-S2-029漏洞是一个严重的问题,它涉及到OGNL(Object-Graph Navigation Language)表达式在Struts2框架中的不安全处理。此漏洞的根本原因是开发人员在处理OGNL表达式中的赋值操作时,错误地编写了判断条件,...

    Inference in Hidden Markov Models

    《Inference in Hidden Markov Models》是一本深入探讨隐马尔可夫模型(Hidden Markov Models,简称HMMs)的权威著作。该书详细阐述了HMMs的理论基础、推断方法以及在实际应用中的重要性。对于从事自然语言处理、...

    asp 之上传漏洞终结篇

    - 一些网站为了应对已知的上传漏洞利用工具,如`upfile.exe`或`filepath`变量利用工具,会在上传页面添加额外的隐藏字段。然而,这些措施并不能完全阻止漏洞的利用。 - 攻击者可以通过手动修改WSE抓取的数据包中的...

    ajaxfileupload带参数上传附件

    本文将基于提供的标题、描述和部分内容,深入探讨如何利用AjaxFileUploader插件实现带参数上传附件的功能,以及其背后的原理与实践。 ### AjaxFileUploader简介 AjaxFileUploader是一个基于jQuery的插件,它允许...

    全面阐述overflowhidden属性

    - 当设置一个元素的 `overflow` 为 `hidden` 时,如果该元素是块级元素,则会隐式地创建一个新的块格式化上下文(BFC)。这意味着元素内部的浮动元素和其他元素不会影响外部元素的布局。 - 使用 `overflow: hidden...

    winmend folder hidden密码忘记找回文件的方法

    标签"winmend folder hidden"进一步强调了这个问题是关于该特定软件的。 根据提供的部分内容,以下是两种找回文件的方法: 1. 使用360系统重装大师: - 首先,下载并刻录360系统重装大师到U盘。 - 重启电脑,...

    Python-HiddenLayer面向PyTorchTensorflow的神经网络图和训练度量的轻量库

    **正文** 在Python的机器学习领域,开发人员经常需要对模型...通过下载并安装`waleedka-hiddenlayer-9df8c74`这个版本,你可以开始探索和利用`HiddenLayer`的强大功能,为你的深度学习项目带来更多的洞察力和可读性。

    php中 变量传递的几种办法

    表单提交是最常用的变量传递方式之一,可以通过`POST`或`GET`方法来发送数据到服务器。 ##### 示例: **page1.htm** ```html 提交"&gt; &lt;input type="hidden" name="a" value="hello"&gt; ``` **page2.php** ```...

Global site tag (gtag.js) - Google Analytics