zoukankan      html  css  js  c++  java
  • aspx代码审计-2

    今天和大家分享一下aspx网站的代码审计,漏洞类型为:未授权访问和任意文件下载。

    本文作者:i春秋签约作家——非主流

    今天看的源码文件就不共享给大家了,本文只作学习只用。

    还是先看我们的文件夹目录和dll文件的目录:

    这是网站根目录

    图片1.png

    正常打开,是会跳转到/2052/aspx/userlogin.aspx

    图片2.png

    Dll使用ILSpy反编译后,目录如下:

    图片3.png

    在代码审计中,类似未授权访问的漏洞是最好验证的,像一般aspx网站开发时,都会将dll中的类和页面与显示的aspx文件的名称命名一样说简单点,就是比如这里的jtgcweb.2052.aspx下的userlogin,就对应着文件夹2052/aspx/userlogin.aspx文件

    图片4.png

    图片5.png

    话不多说,我们直接开始吧。

    我们直接定位到存在未授权访问和任意文件下载漏洞的文件:/2052/Aspx/gw/download.aspx

    图片6.png

    文件说的很清楚,源码在这里

    _2052_Aspx_Message_Download

    图片7.png

    通过源码,我们其实已经可以发现,好像并没有什么验证的脚本或是函数嘛。我们直接访问看看。既不报错,也不提示什么,单纯的一个无标题页,嗯,看来这个文件是可以直接在没有登陆的情况下请求到的。

    图片8.png

    接着分析上面的源码截图,学过asp的都知道,Request.QueryString()函数意指程序通过http的get方法进行参数传递,所以,这里我们便需要传递两个参数(分别是name和oid)进去,才可以完成这个if判断。

    所以,我们暂时构造请求格式如下:

    http://xxxxx/2052/Aspx/gw/download.aspx?name=1&oid=1

    base.Response.AppendHeader(“Content-Disposition”, ”attachment; filename=” + base.Server.UrlPathEncode(text)); //这段代码的意思是指,从download.aspx文件所在的目录,开始下载文件,文件的名字从哪来?从text来,text的值又从哪来?从我们get请求中的name参数的值来。所以,我们试试get请求这个呢?

    web.config文件在网站的根目录,download.aspx文件在2052/aspx/gw/目录下。

    http://xxxxxxx/2052/Aspx/gw/download.aspx?name=../../../web.config&oid=/

    图片9.png

    这里为什么会报错呢?很奇怪啊,我们再分析分析源码看看。

    图片10.png

    哦,原来是这样,我们通过最后一句被传输的filename的值是通过str2和text的值拼接的。

    Text的值,我们搞定了,但是str2的值呢,是通过str来决定的,也就是我们的oid参数,所以当我们将oid的值改为../的时候,str2指向的目录才是网站的根目录,那么我们现在再来试试?

    http://xxxxxxx/2052/Aspx/gw/download.aspx?name=../../../web.config&oid=../

    图片11.png

    成功下载,我们打开看看呗?

    图片12.png

    很nice,所以,今天的任意文件下载漏洞和未授权访问漏洞,你学到了吗?

  • 相关阅读:
    要学习的东西~!~
    Concrete5官网
    PHP免费源码下载
    PHP源码下载1
    PHP源码下载
    PHP框架之ThinkPHP项目CMS内容管理系统源码及开发手册视频
    SELINUX导致数据修改权限不成功
    mysql参数安全设置
    大话存储(1-5)
    存储知识(4)
  • 原文地址:https://www.cnblogs.com/ichunqiu/p/7569050.html
Copyright © 2011-2022 走看看