消失了好一阵子,从今天起开始写博客,不为了别的只为了记录下这些精妙的方法,免得自己忘记
ColdFusion(直译:冷聚变),是一个动态Web服务器,其CFML(ColdFusion Markup Language)是一种程序设计语言,类似现在的JavaServer
Page里的JSTL(JSP Standard Tag Lib),从1995年开始开发,其设计思想被一些人认为非常先进,被一些语言所借鉴。
工作需要看到一个coldfusion的服务器,从来没弄过,想当然的以为像php一样配置文件直接写在脚本文件里,我把整个站翻遍了也没找到数据库连接文件,无果。找找资料才发现这种web服务器有多恶心。
下面分享我的经历:
1. administrator页面的验证密码
是放在X:\ColdFusion8\lib\password.properties
采用的sha1加密的 可以扔cmd5上去直接破
如果破不了 可以去administrator目录的index.cfm里写代码劫持密码
因为登录页面是直接hash(password) 的方式传递到后台的
所以只能在登录的时候去代码劫持
2. bypass administrator页面的验证
找到X:\ColdFusion8\lib\neo-security.xml
把里面的 admin.security.enabled 项设置为false
然后要重启服务
net stop "ColdFusion 8 Application Server" (服务名mickey 的paper里没有提到)
net start "ColdFusion 8 Application Server"
再登陆administrator页面就不需要密码验证了
(个人感觉bypass的必要性不大
首先要重启服务 要么是完全控下了服务器 要么是webshell下提权成功有权限去重启服务
既然都有权限去重启服务了 那么其实已经能直接访问敏感文件了 没啥必要再登录后台了
例如有权限能访问neo-security.xml 其实也就能访问neo-datasource.xml
直接就可以把所有数据库的连接信息抓出来 当然在后台看着排版啥还是要工整一些)
3. 数据库连接信息(含数据库密码 但是是被加密了的)
是放在www.2cto.com X:\ColdFusion8\lib\neo-datasource.xml
数据库密码是先用的3DES 的E-D-E 模式加密
加密的密钥统一都是0yJ!@1$r8p0L@r1$6yJ!@1rj
(之前我以为每台服务器上的密钥都不一样 后来验证了 所有的都是一样的)
再把加密后的结果进行base64 编码
得到类似于+6gMKHMdJiY= 这样
解密的方式可以用bash命令搞定
bash命令如下
echo 要解密的字符串| openssl des-ede3 -a -d -K 30794A21403124723870304C4072312436794A214031726A -iv 30794A2140312472; echo
其实密码的破解还有个更简便的方法,很多cfm的大马集成了这项功能,也是我偶然在服务器上翻到前辈的足迹,故赶紧放进自己的兵器库。不便上传,需要的留下邮箱。
欢迎大家转载,转载请注明出处!
希望这个笔记对自己和大家有用,但是本人水平有限,如果出错的地方,希望大家指出,多多批评,谢谢!
今天开始,将是easyui的组合使用,期间我会大致介绍下其中的API:
今天先来一个dialog的登陆界面,以及登陆失败、成功后的弹窗(message框架):
这里面就不给大家介绍后台代码了,写好后台代码会补上,时间有限啊。
2 <!--easyui最全的样式包也可单独引用你想使用的样式包-->
3 <link href="/blog_article/jquery-easyui-1.3.2/themes/icon.css" rel="stylesheet" type="text/css" />
4 <!--easyui自带图片样式包,也可自行添加-->
5 <script src="/blog_article/jquery-easyui-1.3.2/jquery-1.8.0.min.js" type="text/javascript"></script>
6 <!--我使用的是easyui 1.3.2,基于jquery-1.8.0-->
7 <script src="/blog_article/jquery-easyui-1.3.2/jquery.easyui.min.js" type="text/javascript"></script>
8 <!--easyui的js包-->
9 <script src="/blog_article/jquery-easyui-1.3.2/locale/easyui-lang-zh_CN.js" type="text/javascript"></script>
10 <!--easyui的中文语言包,默认是英文-->
11 <script type="text/javascript">
12 $(function () {
13 //初始化
14 initTable();
15 });
16
17 //个人习惯方法化书写
18 function initTable() {
19 $("#dd").dialog({
20 closable: false, //右上角的关闭按钮,因为dialog框架关联的是window框架,window框架关联的是panel框架,所以该API是在panel框架中找到的
21 title: "登陆界面", //dialog左上角的名称
22 modal: true, //模式化
23 width: 300,
24 height: 200,
25 buttons: [//dialog右下角的按钮,以Json数组形式添加
26 {
27 text: "登录", //按钮名称
28 iconCls: "icon-save", //按钮左侧显示的图片
29 handler: function () {//
作者:zhanhailiang 日期:2013-03-27
引用自:一道面试题,从水木上拷贝过来的,题够变态
下面是一个C程序,其想要输出20个减号,不过,粗心的程序员把代码写错了,你需要把下面的代码修改正确, 不过,你只能增加或是修改其中的一个字符,请你给出三种答案。 int n=20; for(int i=0; i<n; i--){ printf("-"); }
下面用JS实现解法。
解法1:
var n=20; for(var i=0; -i<n; i--){ console.log("-"); }
解法2:
var n=20; for(var i=0; i<n; n--){ console.log("-"); }
解法3:
var n=20; for(var i=0; i+n; i--){ console.log("-"); }