当前位置:主页 > 科技 > 文章内容

皇冠下载(www.huangguan.us):大略快速定位程序中显著的破绽(.Net审计)

日期:2021-05-01 浏览:

U交所

U交所(www.payusdt.vip)是使用TRC-20协议的Usdt官方交易所,开放USDT帐号注册、usdt小额交易、usdt线下现金交易、usdt实名不实名交易、usdt场外担保交易的平台。免费提供场外usdt承兑、低价usdt渠道、Usdt提币免手续费、Usdt交易免手续费。U交所开放usdt otc API接口、支付回调等接口。

- 概述
这是一篇基于WebApplication开发的.Net应用程序代码审计,程序中所有的代码文件都被编译为一个程序集,保留在目录下的bin文件夹中,由于打码打的不太好(要挨打),以是只管只给出代码,提供思绪参考学习交流,希望师傅们在拿到.Net程序的时刻,也可以简朴大略的定位出显著破绽(RCE),直接一把梭干掉,喜提年终奖。首先看了一下目录下的Web.config,Global.aspx,发现并没有做全局过滤,或者是什么权限控制,以是我们可以直接去找功效项,然后去反汇编他详细的DLL文件,在凭证详情的程序代码,接见功效项页面传入对应的参数举行挪用。

- 随便文件下载
在Common中的LXXXFileXXXth.aspx中的的代码如下:

<%@ Page Language="C," AutoEventWireup="true" CodeBehind="Loadxxx.aspx.cs" Inherits="XXXXXXX.Newxx.Common.LXXXXX" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>

    </div>
    </form>
</body>
</html>

重点关注工具:Inherits="XXXXXXX.Newxx.Common.LXXXXX",这里是引用Dll文件的位置,要考的,在我们确定了程序集目录的情形下,凭证特征,行使ILSpy软件,对Dll文件直接举行反汇编,就可以看到详情的代码,可以看到这里引用了XXX文件,我们跟到文件的代码

重点注重到这几行代码

string text = base.Request.QueryString["filepath"];
string str = (base.Request.QueryString["Subject"] == null) ? "" : base.Request.QueryString["Subject"];
......
......
this.PrintInfo(text, str   ".eml");

在PrintInfo(string filePath, string fileName)中,传入的2个值,划分为Path和下载的文件名字,文件名拼接中的str是可控的(吸收到的Subject) ".eml",text也是可控的(吸收到的filepath),以是我们这里只需要凭证绝对路径,组织filepath为绝对路径的文件,Subject传不传都没事,由于横竖下载后的默认文件名也是.eml,然则内容确实我们读取文件的内容。

我们这里组织Payload,可以看到乐成下载了某目录下的.aspx文件

- Sql注入
在PXgXwxxxxe目录下的lxxCxxpxxust.aspx文件中的代码如下:

这里照样跟上面一样,关注重点工具Inherits="XXXXXXX.Newxx.xxx.LXXXXX",然后快速定位到代码层,前面有过先容,这里我们直接跟踪,贴出代码。

重点代码剖析:

,

IPFS矿机

IPFS官网(www.FLaCoin.vip)是Filecoin致力服务于使用Filecoin存储和检索数据的官方权威平台。IPFS官网实时更新FlaCoin(FIL)行情、当前FlaCoin(FIL)矿池、FlaCoin(FIL)收益数据、各类FlaCoin(FIL)矿机出售信息。并开放FlaCoin(FIL)交易所、IPFS云矿机、IPFS矿机出售、租用、招商等业务。

,
......
this.mouldId = base.Request.QueryString["mouldId"].ToString();
......
DataTable dataSource = new MouldDao().GetDataSource("select DefaultValue from syListField where MouldID='"   this.mouldId   "' and FieldName='CType'");
......
this.type = dataSource.Rows[0][0].ToString();

首先取mouldId的值,然后并没有使用@参数化传参,也没有任何的过滤,导致我们可以拼接Sql语句,造成Sql注入攻击,可以看到这里传入'进入,然后造成了Sql语句报错。

- 随便文件上传
在PXgXwxxxxe目录下的uxxpxxe.aspx文件中的代码如下:

上同,关注要害点Inherits="XXXXXXX.Newxx.xxx.LXXXXX",定位到代码层,这里贴出代码。

注重其中的几行重点代码:

protected HtmlForm form1;//
DataRow dataRow = new BasePage().GetEmp().Rows[0];//用户权限验证
HttpPostedFile httpPostedFile = base.Request.Files["Filedata"];//multipart/form-data中的name名

其中DataRow dataRow = new BasePage().GetEmp().Rows[0]用户权限验证,是可以被绕过的,也就是在GetEmp()中,由于我是稀里糊涂绕过的,这里就不解说了(严重划水,主要确实是稀里糊涂绕过的,也许讲一下思绪就是,领会程序自己的加密历程,把他给拖出来,然后Python或者其语言复现重写加密剧本,天生JSON形式的Cookie以及相关ID值,由于他是从COOKIE中直接取值验证的,相当于Token伪造吧。),然后就可以进入到下面的上传主程序,内陆组织Html表单。

<body>
<form action="http://xxxxx.com/xxxx/xxxxx.aspx?ItemNo=" method="post" enctype="multipart/form-data">
<input type="file" name="Filedata">
<input type="submit" name="Submit" value="upload" ></form>
</form>
</body>

这里上传乐成的话,就会返回文件名,然后凭证目录在文件名后面加上后缀aspx即可,算是一个前台RCE了。

- 总结
确认.NET的开发类型,关注web.config和Global.asax文件,熟悉文件目录,反汇编Dll文件,快速定位代码层(也可以直接搜索相关函数,文件操作类,输出类,或者Eval,exec之类的函数),回溯跟踪,凭证代码组织Payload,乐成Rce(应该打好码了吧/手动滑稽)