前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于反编译的搜索

【.NET小科普之一】数据库信息在哪儿 | WooYun知识库 WooYun知识库 登录 像一朵乌云一样成长 首页 WooYun Zone 投稿 首页 » 技术分享 » 【.NET小科普之一】数据库信息在哪儿 【.NET小科普之一】数据库信息在哪儿 4人收藏 收藏 2014/03/03 11:48 | wefgod | 技术分享 | 占个座先 0x00 前言 最近有人问到ASP.NET里面的数据库连接信息一般去哪里找。 这里我简单总结一下我遇到过的一些情况,和大家分享一些简单的方法去找ASP.NET的数据库连接信息或数据库文件。 0x01 寻找方式 先说一般的数据库连接信息。 第一种 一般在web.config,如某套OA就是将连接字符串存放在该文件内,如下图: 第二种 有的ASP.NET程序功能较多,会自定义其它config文件,所以可能会存在多个config,而数据库连接信息就存放在其它config文件中,比如逐浪CMS(你们懂的)就有多个config文件,如下图: 但数据库相关连接信息存放在Config\ConnectionStrings.config里: 第三种 也有更标新立异的压根不存放在config中,比如信游(你们也懂的)的免费版,也有一个config文件夹,里面的文件大致如下: 数据库连接信息存放在server.apb中: 第四种 有一些比较奇葩的,直接写在代码中。这种情况下如果没有源码cs文件,就只能反编译bin目录下的dll文件了,必须扩展开来说,这是后话了。 数据库文件 那如果是access或者SQLite的情况又会有什么变化呢?他们的数据库会存放在什么位置? 现在大多CMS为了避免直接下载MDB或相关格式的问题,在.NET中采取了其它手段去防下载,比如50cms将SQLite的数据库存放在根目录的App_Data文件夹中: 2013就是50cms的数据库: 另外还有直接将access数据库存放在App_Code文件夹中的,保存为.cs后缀,由于App_Code和App_Data是无法直接通过post和get来直接访问的(你有任意文件下载的话谁都拦不住你),所以在一定程度上保证了网站的安全性,比如下面的2013.cs实际就是网站的数据库: 当然了,上面说的也是较为常见的,凡事总会有奇葩的,结合实际情况以不变应万变吧! 总结一下,数据库或者数据库相关信息会在哪里: 1. web.config 2. 其它config文件 3. 某些有特征的文件夹下的某个文件(如上面信游的那个) 4. 源码中,去dll翻翻吧 5. App_Code或App_Data 6. 其它各种奇葩情况…… 下面重点说说第四种寻找方式。 0x02 反编译.NET程序 1 .NET的程序是怎样的? 我们这说的.NET不是什么www.caoliu.net,都指的是微软的开发语言。下文对.NET的分析主要是我个人的总结,并非官方语言。 那常见的.NET程序其简单构成是咋样的呢? 第一种,我们常见的桌面应用,可以是winform和console类型,比如常见的winform应用其可编译的项目源文件结构大概如下(以VS2008为例): Bin目录是编译后的两种类型的可执行文件: Debug编译后的程序会带有一些相关的调试信息,体积会大一点,release是发布版本的相对没带有那么多调试信息,体积会小一些。 第二种,就是我们要重点熟知的asp.net应用程序,一个很简单的asp.net应用程序的源码目录结构如下: 一般来说,我们的关注点更多不在aspx文件中,因为VS2005之后都主要是将相关的代码分离到了cs文件中。所以我们更多要关注的是.cs后缀的文件,但是在发布版的网站中,是不包含cs文件的,此时我们要关注的就是bin目录了,bin目录中有相关的dll。比如上面的小网站的bin目录只有一个dll文件: 2. 用什么反编译.NET的程序 目前相对比较有名的.NET反编译程序主要有两款: Reflector ILSpy Reflector是一个比较早出现而且功能也比较强大的反编译软件(在这略微提醒一下,是反编译不是反汇编),支持自定义插件和代码调试的功能,支持将源码反编译为IL语言、VB.NET、C#、Delphi.NET、F#和MC++等并可选择.NET框架的相关版本(不同版本有不同的语言特性),目前最新版已经是8.0,7.3版的截图如下: 选定某个dll后,可以在File菜单中选择导出源码: ILSpy是一个开源且免费的反编译程序,主要功能还是反编译,不支持插件,可以翻译成的语言主要是C#、VB.NET和IL。最新版截图如下: 选中某个dll后,可以在File菜单中导出源码: 3. 反编译的简单实例 在这以简单免费的ILSPY做演示。 先来一个找源码中数据库连接信息的例子,示例是用我们上面提到的一个小网站。 先打开ILSpy,拖动相关的dll到左边的边栏中: 点击+号,展开相关的信息: 这里没有做混淆(这是后后后话了),所以反编译出来的类比较容易从名词中看出其作用。 既然要找数据库连接信息,那要先考虑一点,什么时候会进行数据库的连接?很简单!登录的时候吗,所以一般来说,都是先围绕登录点相关的类和函数进行。点击上面的login: 此时右边的分栏可以看到该login类的源码了。里面主要有两个方法:Page_Load和Button1_Click。其中Page_Load是页面加载时一定会调用的方法,Button1_Click是按钮点击事件的方法(简单说就是点击登录按钮时调用的方法)。 点击左边的+号展开两个方法,会发现Page_Load是空的,Button1_Click是包含有源代码的: 所以只能从按钮点击那下手了。 看上图标蓝色的地方,很明显就是数据库连接信息,把数据库连接信息写入到源码中,不是很利于后期的维护。 另外一篇例子,可以参考我发布在zone里的 http://zone.wooyun.org/content/3469 寻找正方教务系统数据库连接解密方法的一篇文章。 再展示下,如果没混淆和加密的.NET程序,我们可以做到什么。比如下面这个大牛写的程序: 确定就退出了,只要稍加修改马上可以去掉相关的代码,任意用了: 最后就不总结什么了,祝大家0day多多! 浊文一篇为博大家一笑,请勿较真……第一次来提交,写得不好请指正。 版权声明:未经授权禁止转载 wefgod@乌云知识库 分享到: 相关日志 深入了解SQL注入绕过waf和过滤机制从丝绸之路到安全运维(Operational Security)与风险控制(Risk Management) 上集一种被命名为Chameleon的病毒可以通过WiFi相互之间传播QR二维码的攻击方法与防御GPU破解神器Hashcat使用简介Bypass IE XSS Filter 上一篇:深入了解SQL注入绕过waf和过滤机制 下一篇:对某创新路由的安全测试 楼被抢了 15 层了... 抢座、Rss 2.0或者 Trackback 在路上 | 2014/03/03 13:16 | # 不错 在大牛后面学习 回复该留言 dotneter | 2014/03/03 14:24 | # 感谢分享。。 作为一个dotNeter飘过!!! 回复该留言 eval | 2014/03/03 17:10 | # 洞主一直是我膜拜的对象啊 回复该留言 野驴~ | 2014/03/03 22:55 | # 感谢大牛做了详细的总结,平时都是些零散的经验,今儿成体系了~红灯绿灯小白灯 回复该留言 风继续吹 | 2014/03/03 22:58 | # 大牛:我很崇拜你 回复该留言 wefgod | 2014/03/03 23:11 | # 其实本来是两篇的,龙哥编辑了下合并为一篇了哈。感谢大家支持,都是自己积累了一段时间的简单总结,目前可以想起来的就那么多了,以后还会继续总结的 回复该留言 梧桐雨 | 2014/03/04 00:13 | # 洞主一直是我膜拜的对象啊 回复该留言 结界师 | 2014/03/04 09:46 | # 楼主果然是大牛 一直关注别人的代码如何如何 别人的网络如何如何脆弱 我们自己的产品 自己的网络又如何 回复该留言 john | 2014/03/04 11:49 | # 谢谢脱裤侠 一生平安 回复该留言 wefgod | 2014/03/04 13:51 | # 哈哈,我一般不脱裤的 回复该留言 Jason | 2014/03/04 17:11 | # 正需要呢,太感谢了! 回复该留言 U神 | 2014/03/05 12:17 | # 某次看到一oracle+aspx的网站,web.config下有大量的连接信息,请问到底是哪一个? 回复该留言 wefgod | 2014/03/05 12:38 | # 不固定,都有可能用到。 回复该留言 Exr | 2014/03/05 20:13 | # 佩服楼主~ 回复该留言 园长 | 2014/03/05 21:18 | # shack2狗的工具.... 回复该留言 发表评论 点击这里取消回复。 昵称 (不填说不了话) 信箱 (不会被公开,但是不填也说不了话) 网址 (这个不填也成) 公告 召唤时事热点以及目前知识库略缺的内容。 议题召唤中的内容: 1. 运维安全之 nfs 安全 2. 业内新闻时事热点 如果你觉得有更好的议题方向 可以直接 投稿 或者发邮件到 secdragon@wooyun.org 订阅更新 分类 漏洞分析 (62) 技术分享 (87) 工具收集 (8) 业界资讯 (10) 最新日志 linux渗透测试技巧2则 密码管理利器:Linux – KeePassX 回顾历史上那些因为一行代码出现问题的bug 【.NET小科普之一】数据库信息在哪儿 深入了解SQL注入绕过waf和过滤机制 京东数据库泄露事件分析 DedeCMS最新通杀注入(buy_action.php)漏洞分析 一种被命名为Chameleon的病毒可以通过WiFi相互之间传播 Google Chrome 开发者工具漏洞利用 苹果爆出新漏洞可被恶意APP利用记录用户键盘输入 最新评论 正在加载... Powered by WordPress | GZai Theme by 鬼仔