安云网 - AnYun.ORG | 专注于网络信息收集、网络数据分享、网络安全研究、网络各种猎奇八卦。
当前位置: 安云网 > 技术关注 > 逆向工程 > 三种方法还原ASP.NET可逆加密内容

三种方法还原ASP.NET可逆加密内容

时间:2014-09-30来源:未知 作者:安云网点击:
0x00 在进行安全测试的时候经常遇到ASP.NET平台的各类系统,它们加密手段有强有弱。有的只加密用户信息,有的则将数据库连接字串也进行了加密。以前不熟悉ASP.NET的时候有时解密一个连接字串都要花费数小时。下面介绍三种方法

0x00 
    在进行安全测试的时候经常遇到ASP.NET平台的各类系统,它们加密手段有强有弱。有的只加密用户信息,有的则将数据库连接字串也进行了加密。以前不熟悉ASP.NET的时候有时解密一个连接字串都要花费数小时。下面介绍三种方法(由难到易),以便快速解密加密的内容,适合新手。  //内容来自安云网

0x01 
    工具:IIS(要配置支持ASP.NET)、.NET Reflector、记事本、任意浏览器…… 

//内容来自AnYun.ORG

    要求:一定的代码阅读能力 

0x02 

//内容来自安云网


    方法一(适用于能看懂代码又能写代码的童鞋) 
.NET Reflector定位至解密函数读懂代码,用任意一门编程语言编写同样解密算法的工具。(不详述此方法,因此方法跟自身的代码阅读能力、逆向跟踪能力有关。若是解密算法调用函数太多那么会消耗不少时间)
//本文来自安云网


    方法二(适用于能读代码但不会写代码的童鞋) 
示例:  //本文来自安云网
  .NET Reflector定位至解密函数 
三种方法还原ASP.NET可逆加密内容 //内容来自AnYun.ORG
  查看无复杂的调用,只有string str2 = str_key;中的str_key是未知的。跟踪得到str_key是zysoftvschool。 
  复制整个函数到demo.aspx,添加要解密的字符串。demo.aspx内容如下: 
<%@ Page Language="C#" ValidateRequest="false" %> 

//本文来自安云网


<script runat ="server" > 
//===============直接复制 .NET Reflector中看到的函数================ 
public static string Decrypt(string str) 

    string str2 = "zysoftvschool"; 
    string str3 = ""; 
    int num5 = 0; 
    if (str == "") 
    { 
        return ""; 
    } 
    int length = str2.Length;  //本文来自安云网
    if (length == 0) 
    { 
        str2 = "Think Space"; 
    } 
    int num2 = 0; 
    int num3 = Convert.ToInt32(str.Substring(0, 2), 0x10); 
    int startIndex = 2; 
    while (true) 
    { 
        try 
        { 
            num5 = Convert.ToInt32(str.Substring(startIndex, 2), 0x10);  //内容来自安云网
        } 
        catch (Exception) 
        { 
        } 
        int num6 = num5 ^ Convert.ToInt32(str2[num2]); 
        if (num6 <= num3) 
        { 
            num6 = (0xff + num6) - num3; 
        } 
        else  //内容来自安云网
        { 
            num6 -= num3; 
        } 
        str3 = str3 + Convert.ToChar(num6); 
        num3 = num5; 
        startIndex += 2; 
        if (num2 < length) 
        { 
            num2++; 
        }  //内容来自安云网
        else 
        { 
            num2 = 1; 
        } 
        if (startIndex >= str.Length) 
        { 
            return str3; 
        } 
    } 

/===========================================================  //内容来自AnYun.ORG
</script> 
<% 
//调用上面的解密函数Decrypt 
Response.Write(Decrypt("要解密的字串写这里")); 
%>

浏览器访问,得到密码:***ccom102668 
三种方法还原ASP.NET可逆加密内容 
//内容来自AnYun.ORG


    方法三(适用于代码读不了更写不了的童鞋) 
示例: 

//内容来自安云网


  .NET Reflector定位至解密函数,解密函数调用非常复杂,跟了几步思路也跟丢了…… 
三种方法还原ASP.NET可逆加密内容  //内容来自AnYun.ORG
对付这类的加密那就使用最简单的方法吧——直接调用dll内的解密函数。调用方法:命令空间.类.方法 
三种方法还原ASP.NET可逆加密内容  //内容来自AnYun.ORG
注意:本地解密需要把调用的xxx.dll放至Web目录的bin文件夹中!如果将写好的脚本放到目标Web目录则可以直接执行。 
Demo: 

//内容来自安云网


<%@ Page Language="C#" ValidateRequest="false" Debug="true" %> 

<script runat ="server" > 
public static string Decrypt(string str) 

  string str3 = ""; 
  //下面是调用方法 

//内容来自AnYun.ORG


  str3 = Newcapec.eCard.Utility.ConnectionInfo.DecryptDBConnectionString(str); 
  return str3; 

</script> 
<% 
Response.Write(Decrypt("AQAAANCMnd8BFdERjHoAwE/Cl 

+sBAAAAECVqcj9oCEGaJ0mZSN5kGAQAAAACAAAAAAAQZgAAAAEAACAAAAAhqwK0FIppu3zaId41oqAahOfebXIgpn6Y

9wtCSh66xwAAAAAOgAAAAAIAACAAAAA9kwoU8mJNSwcoouLxVGh9PIU8RLsqFehwf0nmMVUeamAAAABdTYklOfQhsR4

l8obq/PAZfLp12Ff1GvHiJBK1C7lJzi8d0dgs51TZvp5fOc0C2Ok6qqtXXcx07i9KlMGr1ETF23vFi0oE5wHy36bjGu

0OvTo9psUMFia7wVLkchDkDoRAAAAAULGxt/L13wLHBMpv85P+ruAczDqo5NG8ufk 

//内容来自安云网



+F3VVaEdPr7PvFK3OeHYtMOlLRSTBZk6sKilhsQRuNNM4z0GouA==")); 
%>


浏览器中访问得到解密后内容:Data Source=orcl;User Id=ccense;Password=ecard;min pool size=1;max pool size=50;Pooling=true 
三种方法还原ASP.NET可逆加密内容 
//内容来自安云网


0x03 总结 
    三种解密方法中第三种方法最为省时省力,且对那些绑定机器的加密最为简单有效。但是还是建议多使用第一种方法,虽耗时耗力但可以学到更多东西。

//内容来自安云网

//内容来自AnYun.ORG

1#看风者 | 2014-09-12 12:47 //内容来自安云网

不顶没天理

//内容来自AnYun.ORG

 

//本文来自安云网

2#insight-labs | 2014-09-12 12:52 //本文来自安云网

赞一个 //内容来自AnYun.ORG

  //本文来自安云网

3#梧桐雨 | 2014-09-12 13:01

//本文来自安云网

好帖!顶。

//内容来自AnYun.ORG

 

//内容来自安云网

4#c4bbage | 2014-09-12 13:06 //内容来自AnYun.ORG

赞一个 //内容来自安云网

  //本文来自安云网

5#Vigoss_Z | 2014-09-12 13:33

//内容来自AnYun.ORG

我来添一个吧。

//内容来自安云网

还有一种情况是使用.NET自带的加密方法加密链接字符串

//本文来自安云网

解密: //内容来自AnYun.ORG

aspnet_regiis.exe -pd "connectionStrings" -app "/SampleWebSite"

//内容来自AnYun.ORG

(因是RSA加密,所以必须在同一台机器上进行;站点的web.config被加密,下载下来本机解不了。) //内容来自安云网

第二种方法: //内容来自AnYun.ORG

代码:

//本文来自安云网

using System;

//内容来自AnYun.ORG

using System.Configuration;

//内容来自AnYun.ORG

using System.Web.Configuration; //本文来自安云网


//内容来自安云网


//本文来自安云网

string provider = "RSAProtectedConfigurationProvider"; //内容来自安云网

string section = "connectionStrings";

//内容来自AnYun.ORG

protected void btnDecrypt_Click(object sender, EventArgs e) //内容来自安云网

{

//本文来自安云网

   Configuration config = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);

//内容来自AnYun.ORG

   ConfigurationSection configSect = config.GetSection(section); //本文来自安云网

   if (configSect.SectionInformation.IsProtected) //本文来自安云网

   {

//内容来自AnYun.ORG

      configSect.SectionInformation.UnprotectSection(); //内容来自安云网

      config.Save(); //内容来自AnYun.ORG

   } //内容来自安云网

} //内容来自AnYun.ORG

web.config被解密。 //内容来自安云网

  //内容来自安云网

6#工作专用 | 2014-09-12 16:42

//内容来自安云网

神贴刘明! //本文来自安云网

  //内容来自AnYun.ORG

7#Nc4 | 2014-09-12 16:46 //内容来自AnYun.ORG

神贴

//内容来自安云网

  //本文来自安云网

8#Sunshine | 2014-09-13 09:59

//内容来自AnYun.ORG

嗯嗯 //内容来自安云网

赞一个,平时用Reflector看看函数

//本文来自安云网

 

//内容来自安云网

9#核攻击 | 2014-09-13 10:04

//本文来自安云网

good jb~

//内容来自AnYun.ORG

  //本文来自安云网

10#园长 | 2014-09-13 11:24 //内容来自安云网

赞~老师好

//内容来自安云网

 

//内容来自AnYun.ORG

11#Mody | 2014-09-13 21:02

//内容来自AnYun.ORG

@Vigoss_Z 不错 //本文来自安云网

 

//本文来自安云网

12#ヤ深蓝T透 | 2014-09-14 18:45

//内容来自AnYun.ORG

赞~老师好 

//内容来自AnYun.ORG

  //内容来自安云网

13#null | 2014-09-15 09:23

//内容来自AnYun.ORG

终于有人分享了~~~

//内容来自AnYun.ORG

  //内容来自AnYun.ORG

14#逝情 | 2014-09-22 23:58 //内容来自AnYun.ORG

10086个赞,顺便问下,可以转载么?嘎嘎 //本文来自安云网

  //内容来自AnYun.ORG

15#大漠長河 | 2014-09-24 06:13

//本文来自安云网

等八点半后慢慢看 没有乌云币 没法感谢 送本地景点门票一张已示支持

//本文来自安云网

  //内容来自AnYun.ORG

16#Coody | 2014-09-24 08:39

//本文来自安云网

随然不是太懂,但是先收藏了。。。 //本文来自安云网

 

//内容来自AnYun.ORG

17#蒙塔基的钢弹 | 2014-09-27 12:24

//内容来自AnYun.ORG

大赞啊,大牛!~

//本文来自安云网

  //内容来自安云网

18#qing | 2014-09-28 10:08

//内容来自安云网

请求帮忙解密文件 http://103.252.17.111/bin.rar   乌云币感谢 //内容来自AnYun.ORG

 

//内容来自AnYun.ORG

19#RedFree | 2014-09-28 14:52 //本文来自安云网

@qing  //内容来自安云网

MTY3NzUyTzY1NDU3Nk8xNDY4NjM2TzI2MDU4MjRPNDA3Mjg0OE81ODYxMDI0Tzc5Nzg0NjRPMTA0MTk0NDhPMTMxODMzMDBPMTYyNzM0NTJPMTk2OTE3MjRPMjM0MzYwODhPMjc1MDE2MDRPMzE4OTY0MzZPMzY2MTE4NDhPNDE2NTYwMDRPNDcwMjcyOTJPNTI3MjE5MTZPNTg3NDIwNjBPNjUwODg2MDhPNzE3NTgxODBPNzg3NTYzNDBPODYwNzY1ODhPOTM3MjU5NDRPMTAxNjk3NTk2TzEwOTk5NTE4NE8xMTg2MjAzNzJPMTI3NTY4ODQ0TzEzNjg0MjYyOE8xNDY0NDA5NDRPMTU2MzY2NjUyTzE2NjYxOTE4ME8xNzcxOTMxMjBPMTg4MDk1OTA4TzE5OTMyMDIxMk8yMTA4NzU3MDRPMjIyNzUyNDAwTzIzNDk1Mjk1Mk8yNDc0ODE3ODBPMjYwMzM4ODg0TzI3MzUxNjc3Nk8yODcwMjI1ODBPMzAwODQ5NTg4TzMxNTAwNTE4NE8zMjk0ODc3NTZPMzQ0Mjk0NDk2TzM1OTQyNjYwME8zNzQ4ODUzMTZPMzkwNjY2NTM2TzQwNjc3MjYwME80MjMyMDY0NzJPNDM5OTY4NDY0Tw==

//内容来自安云网


//本文来自安云网


//内容来自安云网

Setp1: Base64_Decode //本文来自安云网

167752O654576O1468636O2605824O4072848O5861024O7978464O10419448O13183300O16273452O19691724O23436088O27501604O31896436O36611848O41656004O47027292O52721916O58742060O65088608O71758180O78756340O86076588O93725944O101697596O109995184O118620372O127568844O136842628O146440944O156366652O166619180O177193120O188095908O199320212O210875704O222752400O234952952O247481780O260338884O273516776O287022580O300849588O315005184O329487756O344294496O359426600O374885316O390666536O406772600O423206472O439968464O

//本文来自安云网


//本文来自安云网


//内容来自AnYun.ORG

Setp2:Split by O //内容来自AnYun.ORG

167752

//本文来自安云网

654576 //内容来自安云网

1468636 //内容来自AnYun.ORG

2605824

//内容来自安云网

4072848

//内容来自安云网

5861024

//内容来自安云网

7978464 //内容来自安云网

10419448 //内容来自AnYun.ORG

13183300

//本文来自安云网

16273452

//本文来自安云网

19691724 //本文来自安云网

23436088 //本文来自安云网

27501604

//内容来自AnYun.ORG

31896436 //本文来自安云网

36611848 //内容来自安云网

41656004

//内容来自AnYun.ORG

47027292 //内容来自安云网

52721916 //内容来自安云网

58742060 //本文来自安云网

65088608

//本文来自安云网

71758180

//内容来自AnYun.ORG

78756340 //内容来自安云网

86076588 //内容来自安云网

93725944

//本文来自安云网

101697596 //内容来自AnYun.ORG

109995184 //内容来自安云网

118620372

//本文来自安云网

127568844

//内容来自安云网

136842628 //本文来自安云网

146440944

//内容来自安云网

156366652 //本文来自安云网

166619180

//本文来自安云网

177193120 //内容来自安云网

188095908

//本文来自安云网

199320212

//内容来自安云网

210875704

//内容来自安云网

222752400

//内容来自安云网

234952952

//内容来自AnYun.ORG

247481780 //本文来自安云网

260338884

//内容来自安云网

273516776

//本文来自安云网

287022580

//内容来自安云网

300849588 //本文来自安云网

315005184 //内容来自安云网

329487756

//内容来自安云网

344294496

//内容来自AnYun.ORG

359426600 //内容来自AnYun.ORG

374885316 //内容来自安云网

390666536 //内容来自安云网

406772600

//内容来自安云网

423206472

//内容来自AnYun.ORG

439968464

//内容来自AnYun.ORG


//本文来自安云网


//内容来自AnYun.ORG

Step3:Line/167752

//内容来自安云网

1   1*1-0 //内容来自安云网

3|||2*2-1 //本文来自安云网

8   3*3-1 //内容来自安云网

15  4*4-1

//本文来自安云网

24  5*5-1 //本文来自安云网

34  6*6-2

//内容来自安云网

47  7*7-2

//本文来自安云网

62  8*8-2

//内容来自AnYun.ORG

78  9*9-3

//本文来自安云网

97  10*10-3

//内容来自AnYun.ORG

117 11*11-4 //内容来自安云网

139 12*12-5 //本文来自安云网

163 13*13-6

//内容来自AnYun.ORG

190 14*14-6 //内容来自安云网

218 15*15-7 //本文来自安云网

248 16*16-8 //本文来自安云网

280 17*17-9

//内容来自安云网

314 18*18-10 //内容来自安云网

350 19*19-11

//内容来自安云网

388 20*20-12

//内容来自AnYun.ORG

427 21*21-14 //本文来自安云网

469 22*22-15 //内容来自AnYun.ORG

513 23*23-16

//内容来自AnYun.ORG

558 24*24-18

//内容来自安云网

606 25*25-19 //本文来自安云网

655 26*26-21 //本文来自安云网

707 27*27-22

//本文来自安云网

760 28*28-24 //本文来自安云网

815 29*29-26

//内容来自AnYun.ORG

872 30*30-28 //内容来自AnYun.ORG

932 31*31-29 //内容来自AnYun.ORG

993 32*32-31 //内容来自安云网

1056 33*33-33

//本文来自安云网

1121 34*34-35 //内容来自AnYun.ORG

1188 35*35-37 //内容来自AnYun.ORG

1257 36*36-39

//内容来自AnYun.ORG

1400 38*38-44

//内容来自AnYun.ORG

1475 39*39-46

//本文来自安云网

1551 40*40-49

//本文来自安云网

1630 41*41-51

//内容来自安云网

1710 42*42-54

//内容来自AnYun.ORG

1793 43*43-56

//内容来自安云网

1877 44*44-59 //内容来自AnYun.ORG

1964 45*45-61 //本文来自安云网

2052 46*46-64 //内容来自AnYun.ORG

2142 47*47-67 //内容来自AnYun.ORG

2234 48*48-70 //内容来自安云网

2328 49*49-73 //内容来自AnYun.ORG

2424 50*50-76

//本文来自安云网

2522 51*51-79

//本文来自安云网

2622 52*52-82

//内容来自AnYun.ORG

  //内容来自AnYun.ORG

20#Viigoss | 2014-09-28 16:52

//内容来自安云网

求问:使用 .NET Reflector找到解密函数,怎么跟踪找到key。

//本文来自安云网

  //内容来自安云网

21#Vigoss_Z | 2014-09-28 17:41

//本文来自安云网

@Viigoss 有缘。 //内容来自AnYun.ORG

找调用的函数,追,肯定能找到key。 //本文来自安云网

 

//内容来自AnYun.ORG

22#Viigoss | 2014-09-29 10:59 //本文来自安云网

@Vigoss_Z 一般都是DES的,找到key就能解密了。关键是追不到key。加密解密的函数是写在dll里的,但是key是不是也写在dll里的?知道不?。.net的不好找,java的好找。用Reflector能追么?求方法。

//内容来自安云网

  //内容来自安云网

23#Vigoss_Z | 2014-09-29 11:20

//本文来自安云网

@Viigoss Reflector可以追啊。DES对称加密。加密解密要用到同一个key,加解密函数都可以追到key。 //内容来自AnYun.ORG

细心点肯定能找到。 //内容来自AnYun.ORG



//本文来自安云网

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
验证码: 点击我更换图片
相关内容
推荐内容