MySQL是一个中、小型关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了GPL(GNU通用公共许可证),它分为免费版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其免费版的性能卓越,搭配PHP和Apache可组成良好的开发环境,MySQL 分为商业版本(MySQL Enterprise Edition和 MySQL Cluster CGE )和GPL版本(MySQL Community Edition)(开发版下载地址)。
一、Mysql提权必备条件
1. 服务器 安装Mysql数据库
利用Mysql提权的前提就是服务器安装了mysql数据库,且mysql的服务没有降权,Mysql数据库默认安装是以系统Target="_blank">权限继承的,并且需要获取Mysql root账号密码。
2.判断Mysql服务运行权限
对于Mysql数据库服务运行权限有很多方法,我这里主要介绍三种,一种是通过查看系统账号,也即使用“net user”命令查看系统当前账号,如果出现了mysql这类用户,以为着系统可能进行了降权,一般情况都不会降权。第二种方法就是看mysqld运行的Priority值,如下图所示。通过aspx的网页木马来查看Process信息,在图中我们可以看到系统权限的Priority值为“8 ”,如果Mysqld的Priority值也为8则意味着Mysql是以System权限运行的。第三种方法是查看端口可否外联,一般情况下是不允许root等账号外联,外部直接连接意味着账号可能被截取和嗅探,通过本地客户端直接连接对方服务器,直接查看和操作Mysql数据库,可以通过扫描3306端口来判断是否提供对外连接。
查看Priority值来判断Mysqld服务运行权限
二、Mysql密码获取与破解
1.获取网站数据库账号和密码
对于CMS系统,一定会有一个文件定义了数据库连接的用户和密码。例如以下代码:
dedecms数据库安装的信息就是写在data/common.inc.php,Discuz的数据库信息就在config/config_global_default.php、config /config_ucenter.php、config.inc.php。一般数据库配置文件都会位于config、application、conn、db等目录,配置文件名称一般会是conn.asp/php/aspx/jsp等。对于java会在/WEB-INF/config/config.properties中配置,总之通过查看源代码,进行层层分析,终究会发现数据库配置文件。
对于Linux操作系统,除了上述方法获取root账号密码外,还可以通过查看./root/.mysql_history、./root/.bash_history文件查看mysql操作涉及的密码。当然对于Mysql5.6以下版本,由于设计Mysql程序时对于安全性的重视度非常低,用户密码是明文传输。MySQL对于binary log中和用户密码相关的操作是不加密的。如果你向MySQL发送了例如create user,grant user … identified by这样的携带初始明文密码的指令,那么会在binary log中原原本本的被还原出来,执行“mysqlbinlog binlog.000001”命令即可获取,如下图所示。
查看binlog日志
2.获取Mysql数据库user表
MYSQL所有设置默认都保存在“C:\Program Files\MYSQL\MYSQL Server 5.0\Data\MYSQL”中,也就是安装程序的data目录下,有关用户一共有三个文件即user.frm、user.MYD和 user.MYI,MYSQL数据库用户密码都保存在user.MYD文件中,包括root用户和其他用户的密码。在有权限的情况下,我们可以将User.frm、user.myd和User.myi三个文件下载到本地,通过本地的mysql环境直接读取user表中的数据。当然也可使用文本编辑器将user.MYD打开将root账号的密码复制出来到到cmd5.com进行查询和破解。对于Mysql数据库密码如果通过cmd5.com等网站不能查询到密码则需要自己手动破解,有关Mysql数据库密码手动破解,请查阅下一章。
3.Mysql密码查询
可以通过以下查询语句直接查询mysql数据库中的所有用户和密码。
4.MySQL密码加密算法
MySQL实际上是使用了两次SHA1夹杂一次unhex的方式对用户密码进行了加密。具体的算法可以用公式表示:password_str = concat(‘*’, sha1(unhex(sha1(password)))),可以通过查询语句进行验证,查询结果如下图所示。
mysql数据库加密算法
三、Mysql获取webshell
Mysql root账号网站获取webshell具备的条件:
1.知道站点物理路径,网站物理途径可以通过phpinfo函数、登录后台查看系统属性、文件出错信息、查看网站源代码以及路径猜测等方法获取。
2.有足够大的权限,最好是root账号权限或者具备root权限的其它账号,可以用select user,password FROM mysql.user进行测试。
3.magic_quotes_gpc()=OFF。对于PHP magic_quotes_gpc=on的情况,可以不对输入和输出数据库的字符串数据作addslashes()和stripslashes()的操作,数据也会正常显示。 对于PHP magic_quotes_gpc=off 的情况必须使用addslashes()对输入数据进行处理,但并不需要使用stripslashes()格式化输出,因为addslashes()并未将反斜杠一起写入数据库,只是帮助mysql完成了sql语句的执行。
4.直接导出webshell,执行下面语句
也可以通过创建表来直接完成,其中d:/www/exehack.php为webshell的名称和路径:
5.有些情况下掌握了MSSQL数据库口令,但服务器环境是Windows2008,web环境是PHP,则可以通过SQLTOOLs工具,直接连接命令,通过以下命令写入shell:
四、Mysql渗透有用的一些技巧总结
1.常见的有助于渗透到mysql函数
在对MySQL数据库架构的渗透中,MySQL内置的函数DATABASE()、USER()、SYSTEM_USER()、SESSION_USER()和CURRENT_USER()可以用来获取一些系统的信息,而load_file()作用是读入文件,并将文件内容作为一个字符串返回,这在渗透中尤其有用,例如发现一个php的SQL注入点,则可以通过构造“-1 union select 1,1,1,1,load_file(‘c:/boot.ini’)”来获取boot.ini文件的内容。
(1)一些常见的系统配置文件
LUNIX/UNIX 下:
(2)直接读取配置文件
(3)Linux下通过load_file函数读出来的数据库有可能是hex编码,要正常查看需要使用NotePad将将以上代码全部选中,然后选择插件“Converter”-“HEX-ASCII”进行转换。
2. Windows下MySQL提权时无法创建目录解决办法及数据流隐藏Webshell
NTFS中的ADS(交换数据流)可以建立目录,隐藏webshell等等。
(1) Mysql创建目录
当MySQL版本较高时,自定义函数的dll需要放在mysql目录下的lib\plugin\。一般普通的脚本是没有在这个文件夹下创建文件夹的权限的。这里可以用到ads来突破:
会在mysql目录下生成一个lib目录,这样你就可以将你的udf放在这个插件目录下了。
(2)隐藏webshell
在服务器上echo一个数据流文件进去,比如index.php是网页正常文件,我们可以这样子搞:
这样子就生成了一个不可见的shell a.jpg,常规的文件管理器、type命令,dir命令、del命令发现都找不出那个a.jpg的。我们可以在另外一个正常文件里把这个ADS文件include进去,这样子就可以正常解析我们的一句话了。

3.有用的一些技巧
(1)3389端口命令行下获取总结
(2)Windows 2008Server命令行开启3389
(3)wce64 -w 命令直接获取系统明文登录密码
(4)在phpinfo中查找SCRIPT_FILENAME关键字获取真实路径
(5)Linux终端提示符下查看mysql有关信息,ps -ef|grep mysql
(6)Linux下启动mysql服务: service mysqld start
(7)Linux下查看mysqld是否启动:ps -el | grep mysqld
(8)查看mysql在哪里:whereis mysql
(9)查询运行文件所在路径 which mysql
(10)udf.dll提权常见函数
具体用户示例:
4.一些常见的Mysql命令
(1)连接到mysql 服务器
(2)查看所有数据库
(3)使用某个数据库
(4)查看数据库中的所有表
(5)在test数据库下创建一个新的表
(6)在表中插入内容添加用户命令
(7)查询a表中所有的数据
(8)导出数据到系统某个目录下
(9)查询数据库数据路径
(10)查看所有dir路径
(11)查看插件路径
(12)查询MYSQL安装路径
(13)常用内置函数
(14)获取表结构
(15)删除表
注:本文是笔者撰写的Mysql安全系列文章的第一期,后续我们会持续推出,敬请期待。
参考文章:
什么是威客?
wiki概念的发明人是Ward Cunningham。 wiki这个字到底是什幺意思呢?根据FAQ的说法,WikiWiki一词来源于夏威夷语的“wee kee wee kee”,原本是“快点快点”(quick)的意思。 实际上 wiki 也真的是既简单又快速,你可以看到 wiki 每天都在成长。 新概念的定义总是让人有点摸不着头脑,wiki 也不例外。 先看看简单解释:Wiki--一种多人协作的写作工具。 Wiki站点可以有多人(甚至任何访问者)维护,每个人都可以发表自己的意见,或者对共同的主题进行扩展或者探讨。 还不明白,那就给你看看更复杂、更晕眩的解释:Wiki指一种超文本系统。 这种超文本系统支持面向社群的协作式写作,同时也包括一组支持这种写作的辅助工具。 我们可以在Web的基础上对Wiki文本进行浏览、创建、更改,而且创建、更改、发布的代价远比HTML文本为小;同时Wiki系统还支持面向社群的协作式写作,为协作式写作提供必要帮助;最后,Wiki的作者自然构成了一个社群,Wiki系统为该社群提供简单的交流工具。 与其它超文本系统相比,Wiki有使用方便及开放的特点,所以Wiki系统可以帮助我们在一个社群内共享某领域的知识。 还是有点云里雾里?那就通俗一点:根据 wiki 社群的定义,wiki 是一种提供「共同创作(collaborative)」环境的网站,也就是说,每个人都可以任意修改网站上的页面资料。 这听起来挺疯狂的,万一有陌生人来网站上乱搞怎幺办?别担心,所有的 wiki 都有「版本控制(Version Control)」的概念,你随时都可以找回之前的正确版本;更何况你可不是单打独斗,社群的力量是非常惊人的。 就在这种相信人性本善的概念下,整个 wiki 社群迅速地成长茁壮。 如果你还是很担心,更可以帮 wiki 加入权限管理(Access Control)的机制,保证万无一失。 除了版本控制之外,值得一题的是「格式化语法(Formating Rule)」。 因为对一般人来说,HTML语法实在是个恶梦,所以 wiki 创造了一套更简单的写作语法,让大家可以专注在写作上。 你还是不明白,那也不要紧,我们就先不要咬文嚼字,还是以一种看热闹的从容心态,先慢慢看下去。 Wiki的历史还不长,无论是Wiki概念自身,还是相关软件系统的特性,还都在热烈的讨论中;所以怎样的一个站点才能称得上是一个Wiki系统还是有争议的。 与Wiki相关最近出现的技术还有blog,它们都降低了超文本写作和发布的难度。 这两者都与内容管理系统关系紧密。 第一个 Wiki 网站诞生于1995年,Ward Cunningham 创建的,作为波特兰的模式仓库的模式定义和讨论的交互性场所:;而其根源可以上述到1972年卡耐基-梅隆大学的 ZOG 数据库系统。 1995年Ward Cunningham为了方便模式社群的交流建立了一个工具-波特兰模式知识库(Portland Pattern Repository)。 在建立这个系统的过程中,Ward Cunningham创造了Wiki的概念和名称,并且实现了支持这些概念的服务系统。 这个系统是最早的Wiki系统。 从1996年至2000年间,波特兰模式知识库围绕着面向社群的协作式写作,不断发展出一些支持这种写作的辅助工具,从而使Wiki的概念不断得到丰富。 同时Wiki的概念也得到了传播,出现了许多类似的网站和软件系统。 1995年3月25日 维客历史正式开始 1995年5月1日 “模式名单的革新”发布。 这是世界上第一个维客网站,是对“波特兰模式知识库”的一个自动 补充。 网站发布之初,便立即在“模式社区”(pattern community)中获得成功。 该网站定位的演变历程: 1994年 模式社区及其他们的资源和应用; 1996年 普通设计、建筑以及方法; 1997年 从人和组织的角度看待规划设计; 1998年 偏激的规划设计; 2000年 维客本身; 2003年 维客、社会学等 四、Wiki可以做什么? 返回 说法一:wiki可以说是一种建站的工具,wiki考虑让更多人参与建设,因此它的语法与HTML相比要容易的多,几乎与普通写字板编辑文字差不多,很容易上手。 w iki最适合做百科全书、知识库、整理某一个领域的知识等知识型站点,几个分在不同地区的人利用wiki协同工作可以共同写一本书。 我们计划用w iki来编辑一部elearning百科全书,有兴趣的朋友可以与我联系,我们可以共同编辑。 说法二:首先会想到的当然是共笔系统(例如 FreeBSD 共笔 )、读书会、项目开发、写书、翻译、资料整理(例如网站设计资源)、常见问题整理等等,这些本来就非常适合一群人来做。 其次你可以想想怎幺样来利用版本控制的功能,例如拿来整理想法(可以时常比对旧版本)、写作业、记上课笔记等等。 甚至有人用 wiki 写百科全书喔!如果你还想到可以怎幺玩,欢迎告诉我。 Wiki 是什么做到的? 一 Wiki 使用了简化的语法,替代复杂的 HTML,加上 WEB 界面的编辑工具,降低内容维护的门槛; 二 Wiki 通过文本数据库或者关系型数据库实现了版本控制,可以随时找回以前的版本,也可以和以前的版本进行对比,版本控制使多人协作成为可能,又保护了内容不会丢失; 三 任何信息都可以被任何人修改和删除,页面内容保持了一致性,因为清除垃圾文字、广告是那么的容易,最终剩下的是最有意义的内容;任何人都可参与,但是最后剩下的是最好的参与者; 六、Wiki的特点 使用方便 1)维护快捷:快速创建、存取、更改超文本页面(这也是为什幺叫作 wiki wiki 的原因)。 2)格式简单:用简单的格式标记来取代 HTML 的复杂格式标记。 (类似所见即所得的风格) 3)链接方便:通过简单标记,直接以关键字名来建立链接(页面、外部连接、图像等)。 4)命名平易:关键字名就是页面名称,并且被置于一个单层、平直的名空间中。 有组织 1)自组织的:同页面的内容一样,整个超文本的组织结构也是可以修改、演化的。 2)可汇聚的:系统内多个内容重复的页面可以被汇聚于其中的某个,相应的链接结构也随之改变。 可增长 1)可增长:页面的链接目标可以尚未存在,通过点击链接,我们可以创建这些页面,从而使系统得到增长。 2)修订历史:记录页面的修订历史,页面的各个版本都可以被获取。 开放性 1)开放的:社群的成员可以任意创建、修改、删除页面。 2)可观察:系统内页面的变动可以被访问者观察到。
非常急,明天考试题,论述题,谈谈对商业银行经营管理的理解
浅谈商业银行经营管理机制文:余桦随着社会经济的不断发展,金融竞争日趋激烈,国内外商业银行在经营管理机制上在不断进行探索和改革。 中国人民银行行长周小川在“2004年北京国际金融论坛”上表示:上市有助于推动四大国有商业银行改革。 因此,国有商业银行改革成为我国社会主义经济建设、社会主义市场经济改革的重要组成部分,对我国金融经济的稳定起着十分重要的作用。 本文就有关商业银行经营管理机制谈谈自己的肤浅看法。 国外商业银行普遍采用股份有限公司的组织形式,产权关系清晰。 股东是银行所有者,股东大会是商业银行的最高权力机构,对全体股东负责,董事会对股东大会负责,总经理对董事会负责,部门经理对总经理负责,一般员工对部门经理负责。 这种层层负责、权责分明的行为机制有利于理顺银行内部关系。 其内部组织结构的划分一般有三种形式,即按业务种类划分,按产品划分,按客户划分。 主要由决策机构、执行机构、监督机构和信息机构四大部分构成,充分体现了“三权分立,相互制衡”的运作机制。 国外商业银行在经营机制上有如下特点:一、分工明确,职责清晰,部门之间的衔接顺畅清楚。 二、对客户进行分类指导,重视对客户的服务,特别是对大客户和重要客户的服务。 三、重视银行的整体规划和战略研究,特别重视对市场的研究开发。 四、重视加强风险管理,强化内部监控和审计,在部门设置上体现一种制约关系。 五、确保信息的畅通和完整。 随着我国银行机制改革的不断深入,国内商业银行正逐步建立以市场需求为中心,以效益增长为目标的经营理念,扩大了基层行的贷款权限,简化了贷款手续,将经营重点由防范风险型转向防范风险条件下的经营效益型。 其经营目标是提高市场占有率,获得利润最大化。 经营原则是盈利性、流动性、安全性和社会性;经营机制是自主经营、自负盈亏、自我平衡、自担风险、自我约束、自我发展。 并形成了以内部稽核为主的监督检查指导的内控机制。 具体操作如下:一、不断完善总分行制的经构框架。 根据客户的特点重新塑造适应于我国经济发展的外部组织体系,彻底打破分支机构的行政性设置方式,由过去按行政区域设置方式改为按大中城市设置,按经济发展的水平设置,压缩不必要的分支机构和管理层次,节省行政管理费用,迅速抢占市场。 二、要实行“扁平化”管理。 根据“精简、效能”的原则,合并缩小非业务性机构,大力加强资产负债管理、风险管理、内部稽核及财务管理和信息管理等部门。 要把始终业务经营放在第一位,减少带有行政性色彩很浓的“官本位”机构。 三、要全面实行客户经理制度。 牢固树立以客户为中心的观念,确定一切活动都必须要以获得客户的最大满意为目标。 尤其是对待大客户、重要客户更要加强服务,重点支持,防止客户流失。 四、实行前台业务柜员制。 根据“兼职负责,一人多岗”的原则,将前台业务由传统的多项业务、多人操作转变为由一人单独经办,实现综合业务一体化。 即由传统的复核制改为柜员制,以增强办事效率,减少客户等待的时间。 五、要大力进行人事分配制度的改革。 按照“离、退、辞、聘、训”的五字方针,优胜劣汰、量才使用各类干部。 领导干部按级别和年龄实行退居二线政策,中层干部实行“双向选择,竞聘上岗”原则。 充分发挥人力资源,调动广大干部职工的积极性。 六、要改善信息沟通渠道,加强电子化建设。 银行电子化告别了传统的手工操作,使得银行业务自动化、资金结算汇兑网络化、数据库和管理信息系统一体化。 加强银行电子化建设是打造现代银行的必要保证,是规范规管理的必然要求,因此,必须把信息化电子化建设放到重要的位置来抓,加大投入。 总之,综上所述,要逐步建立起以发展为目标、利益为导向、创新为动力、风险为约束、管理为轴心的新型商业银行经营管理机制。 使我国商业银行更加具有活力,提高其参与国际资本市场的竟争能力。
面向对象和面向过程的区别
就是C和C++的区别. 面向过程就是用代码详细写出问题解决的每一步骤. 我们经常所说的“对象”,一般指的是解决信息领域内所遇到问题的方法。 特别是应用软件技术来解决问题的方法。 如我们经常碰到的面向对象的编程(Object-Oriented Programming)、面向对象的分析(Object-Oriented Analysis)、面向对象的设计(Object-Oriented Design)等。 应用前面所介绍的关于对象的概念,可以对这些问题做进一步的分析。 在面对较复杂的系统,我们可以将它作为一个对象来进行分析。 一个系统(解决某个问题的全套解决方案)作为一个对象,可以由多个部分组成。 同样,这个对象也可以由多个对象组成。 对于同类的事物,可以由一个对象来表示。 这样做的益处是显而易见的,它灵活而高效,可以大大减轻设计人员的工作量,简化实际的模型。 举一个例子。 在关系型数据库的设计当中,我们可以把一个元组当作对象,给它定义一组操作方法。 这些方法将适用于所有元组,从而我们不必在更大的范围内去细致的考虑不同的元组(如判断一个元素是否合法):因为它们有一组公共的面向本身的方法,它们“自己”可以“解决”自己的问题。 更上一层的对象可以是一个表、视图等。 表对象在元组对象的基础上又有它们自己的方法,如增加、删除等。 从这个层面上讲,它也只需要做“自己”的事情,因为有元组对象的支持,它无须去考虑像元素是否合法这类的事情。 甚至,有时为了满足我们还可以将元素或表群当作时对象并定义它们自己的方法。 这样,更能显示面向对象的优势。
发表评论