asp.net html 加密解密,三种方法还原ASP.NET可逆加密内容

本文介绍了三种针对ASP.NET系统加密内容的解密方法,包括阅读并实现解密算法、直接复制解密函数代码以及调用DLL中的解密函数。第三种方法最为简便,适用于复杂加密情况,但作者建议尽量使用第一种方法以提升技能。解密过程中涉及.NETReflector工具和代码阅读能力。
摘要由CSDN通过智能技术生成

0x00

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

0x01

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

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

0x02

方法一(适用于能看懂代码又能写代码的童鞋)

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

方法二(适用于能读代码但不会写代码的童鞋)

示例:

.NET Reflector定位至解密函数

//===============直接复制 .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;

}

}

}

/===========================================================

//调用上面的解密函数Decrypt

Response.Write(Decrypt("要解密的字串写这里"));

%>

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

示例:

.NET Reflector定位至解密函数,解密函数调用非常复杂,跟了几步思路也跟丢了……

对付这类的加密那就使用最简单的方法吧——直接调用dll内的解密函数。调用方法:命令空间.类.方法

注意:本地解密需要把调用的xxx.dll放至Web目录的bin文件夹中!如果将写好的脚本放到目标Web目录则可以直接执行。

Demo:

public static string Decrypt(string str)

{

string str3 = "";

//下面是调用方法

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

return str3;

}

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

0x03 总结

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

原创文章,作者:老D,如若转载,请注明出处:https://laod.cn/214.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值