直接数据库对韩国某CMS的一次安全检测.doc_第1页
直接数据库对韩国某CMS的一次安全检测.doc_第2页
直接数据库对韩国某CMS的一次安全检测.doc_第3页
直接数据库对韩国某CMS的一次安全检测.doc_第4页
直接数据库对韩国某CMS的一次安全检测.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

直接下载数据库 对韩国某CMS的一次安全检测对韩国某CMS的一次安全检测来源:51CTO某日,一个做网页设计的朋友发给我一个站(www.ba*.net),问我感觉如何?该网站设计漂不漂亮?明明知道我在艺术方面不太擅长,尤其是美感设计,还发过来,不过既然发过来了,也要上去看看,打开网站后,感觉还是蛮简洁的,如图1所示,就看看它的安全性如何。一、服务器信息收集1.获取IP信息直接打开DOS提示符操作窗口,使用ping命令,对网站www.b*.net进行ping操作,如图2所示,获取IP地址为221.*.*.21,且无丢包现象,延迟时间也较少,呵呵,感觉韩国的计算机就是爽,速度快,硬件配置也高。安全小知识(1)TTL术语TTL是Time to Live对缩写,它是IP协议包中的一个值,它告诉网络路由器包在网络中的时间是否太长而应被丢弃。有很多原因使包在一定时间内不能被传递到目的地。例如,不正确的路由表可能会导致包的无限循环。一个解决方法就是在一段时间后丢弃这个包,然后给发送者一个报文,由发送者决定是否要重发。TTL的初值通常是系统缺省值,是包头中的8位的域。TTL的最初设想是确定一个时间范围,超过此时间就把包丢弃。由于每个路由器都至少要把TTL值减一,TTL通常表示包在被丢弃前最多能经过的路由器个数。当记数到0时,路由器决定丢弃该包,并发送一个ICMP报文给最初的发送者。TTL是指定数据报被路由器丢弃之前允许通过的网段数量。通常是由发送主机设置的,以防止数据包不断在IP互联网络上永不终止地循环。转发IP数据包时,要求路由器至少将TTL减小1。使用PING时涉及到的ICMP报文类型一个为ICMP请求回显(ICMP Echo Request)一个为ICMP回显应答(ICMP Echo Reply)(2)TTL值TTL字段值可以帮助我们识别操作系统类型,下面是一些常见系统的TTL值:(1)UNIX及类UNIX操作系统ICMP回显应答的TTL字段值为255;(2)Compaq Tru64 5.0 ICMP回显应答的TTL字段值为64;(3)微软Windows NT4 WRKS、Windows NT4 Server、Windows 2000、Windows XP操作系统ICMP回显应答的TTL字段值为128;(4)微软Windows 95、Windows98、Windows98SE、Windows ME操作系统ICMP回显应答的TTL字段值为32;(5)一些特殊情况下,其TTL值会有一些不同:LINUX Kernel 2.2.x&2.4.x ICMP回显应答的TTL字段值为64 FreeBSD 4.1,4.0,3.4;Sun Solaris 2.5.1,2.6,2.7,2.8;OpenBSD 2.6,2.7;NetBSD;HP UX 10.20等等ICMP回显应答的TTL字段值为255;从返回的TTL值中,可以初步判定目标主机是linux系统。防护技巧在一般意义上可以通过ping主机地址或者ping网站域名地址来获取TTL值,通过TTL值来判断网站所在主机的操作系统类型。一些防护严格的系统会自定义TTL值,从而让入侵者无法通过TTL值来获取操作系统的类型。TTL值的注册表位置HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters其中有个DefaultTTL的DWORD值,其数据就是默认的TTL值了,我们可以修改,但不能大于十进制的255。例如本人的计算机的TTL值就是127,如图3所示,嘿嘿,从常见的TTL值你就无法知道!注意:修改TTL值后需要重启计算机才能生效,不同计算机操作系统可能修改的TTL值地方不一样,一般情况下是去注册表HKEY_LOCAL_MACHINESYSTEMCurrentControlSet001ServicesTcpipParameters下修改DefaultTTL的值,如果是在HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters中则需要新建DefaultTTL键,且类型为DWORD。2.获取服务器架构信息通常通过在浏览器中输入地址,其中antian365为不存在的目录,从返回出错的信息中来判断服务器架构信息,如图4所示,可以看出来系统使用的是apache 1.3.36,因为小站根本是使用免费的Mysql数据库,所以可以确认是典型的LAMP架构。说明:(1)如果是在IE浏览器输入,一定要把显示友好HTTP错误信息去掉,具体操作:选择IE浏览器-工具-Internet选项;在高级选项框中将显示友好HTTP错误信息的勾选去掉,这样才能显示详细的错误信息。LAMP架构网络小知识LAMP是一种Web网络应用和开发环境,基本上是四种开源软件技术的组合,它们组合在一起产生了一个功能强大的应用服务平台,使用却相对来说比较简单和容易。LAMP是基于Linux,Apache,MySQL和PHP的开放资源网络开发平台,这个术语来自欧洲,LAMP名字取自每个程序的第一个字母,也有人认为LAMP是一种Web网络应用和开发环境,是Linux,Apache,MySQL,Php/Perl的缩写,每一个字母代表了一个组件。其实LAMP这个词的由来最早始于德国杂志ct Magazine,Michael Kunze在1990年最先把这些项目组合在一起创造了LAMP的缩写字。这些组件并不是开始就设计为一起使用的,由于开源和免费,随着越来越多的人使用它,其兼容性不断改善和完善,因此逐渐成为Web应用程序开发的一种架构。在这个架构中每个程序在所有权里都符合开放源代码标准:Linux是开放系统;Apache是最通用的网络服务器;MySQL是带有基于网络管理附加工具的关系数据库;PHP是流行的对象脚本语言,它包含了多数其它语言的优秀特征来使得它的网络开发更加有效。有时候,开发者在Windows操作系统下使用这些Linux环境里的工具称为使用WAMP,也称为WAMP架构。随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE和.Net商业软件形成三足鼎立之势,并且该软件开发的项目在软件方面的投资成本较低,因此受到整个IT界的关注。有关LAMP的更多知识,可以查看LAMP架构帖子探测端口信息用sfind扫一下服务器,发现只开启21,80端口,如图5所示,其中3306Mysql数据库端口也可以进行探测。之后使用HScan软件扫描Mysql数据库和FTP弱口令,没有结果。看来还是得从web程序入手。二、Web应用程序安全检测1.注入测试用阿D,NBSI等注入工具寻找注入点,没有发现。同时用手工查找,也没有找到,simeon说我的注入比较弱,看来一点不假,呵呵。2.寻找上传点发现可以发贴子,但并没有文件上传的地方。3.旁注检测打开,同一服务器下一共有114个站点,都是使用相同的CMS,用明小子的DOMAIN批量检测一下注入点和上传漏洞,和预计的结果一样,也没有发现。说明:是一个通过IP地址或者域名来获取该IP地址或者域名所在服务器中所存在的其它网站地址。它比明小子的DOMAIN能查询到更准确的数据。4.包含漏洞检测没办法,还是再仔细看看www.b*,当浏览到,这个是不是存在包含漏洞呢?于是测试,出现错误,如图6所示。虽然没有找到远程包含漏洞,但这里可以暴出网站的绝对路径:/home/ba*.net/public_html/ez/。说明:(1)包含漏洞的原因是程序员在使用涉及到的危险函数include、require、include_once和require_once时,未对传入的变时做出过滤。(2)关于暴出网站绝对路径的修补。因include或require因为找不到包含的文件,所以会显示出错,要屏蔽掉错误显示也很简单,只要在include或require加个就可以了。6.下载任意文件漏洞检测手工检测下载任意文件漏洞。目前对于下载任意文件漏洞的检测一般是通过手工进行检测。在浏览到网页时,发现可以单击下载图片,如图7所示。可以通过修改URL地址来下载网站的其它文件,通过观察,URL地址中,file参数直接使用文件名,也许可以下载其它文件,于是在URL地址栏中输入:(20080706012241 _4.jpg为另一张图片)返回一片空白,查看源代码,发现有都是不认识的文字,如图8所示,不能下载其它图片文件。不懂是什么意思。难道用uid参数限制了?还是其它什么的原因。于是重新输入:,发现还是一片空白,明明点击可以下载,为什么从地址栏直接输入就不可以下载?哦。这不就是和很多下载站所用的伎俩-防盗链。说明:关于防盗链。也就是下载时检查referrer参数是不是来自本站的页面,如果不是,就不可以下载。7.突破防盗链突破防盗链方法有很多,可以用asp、PHP、vbs或使用改包NC提交都可以。这里介绍的是一种比较简便的方法,使用Firefox自定义referer插件来突破。首先我们应该先抓包,看看下载时的referrer参数值是什么。(1)使用LiveHTTPHeaders插件获取referrer参数值先安装一个firfox抓包插件LiveHTTPHeaders(),打开该地址,然后单击网页链接Install version 0.14 of LiveHTTPHeaders now,Firefox会提示进行该软件的安装,如图9所示,单击立即安装即可。注意由于组件由于对Firefox有版本要求,因此会出现一些组件无法安装的现象,如果出现安装提示警告信息时,一般都可以进行安装。LiveHTTPHeaders可以抓取http,https的数据链接,包括get和post,一个很不错的插件。安装好插件后,重启FireFox,打开下载页面,运行LiveHTTPHeaders抓包(工具-Live HTTP Headers),然后再点击下载,不一会,包就抓好了,查看一下,referrer参数值为,如图10所示,取得referrer参数值。(2)使用RefControl插件构造referrer值接着到安装Firefox自定义referer插件RefControl,同样安装好之后,重启Firefox,运行RefControl,单击添加站点按钮,在站点中输入,动作选择自定义,同时输入抓包所获取的referrer值,如图11所示,然后单击确定按钮,使设置生效,到此构造referrer值完毕。技巧可以直接Firefox的附加组件来搜索和添加组件。方法是在Firefox中单击工具-附加组件,在弹出的附加组件中单击获取附加组件,在搜索输入框中输入需要添加到组件名称,然后单击搜索按钮即可查找已经存在Firefox附加组件,如果找到,单击查看全部结果,按照提示安装即可。(3)下载passwd文件在Firefox地址栏输入:,发现可以下载20080706012226 _4-1.jpg文件了,再试试,也可以下载20080706012241 _4.jpg。我们试试能不能下载/etc/passwd文件,构造URL为:,可以下载,如图12所示,可以下载passwd文件。8.获取系统用户名使用Editpuls编辑器打开下载的passwd文件,如图13所示,可以查看该服务器上的全部的用户以及密码信息。说明:通过查看图片的属性可以,图片在网站的目录为/ez/bbs/table/pic2/upload/,结前面暴出的网站绝对路径,可知道图片在服务器中的绝对路径为/home/b*/public_html/ez/bbs/table/pic2/upload/,所以需要8个./才能返回根目录。/etc/passwd文件是linux系统的主要文件之一。该文件中包含了所有用户登录名清单;为所有用户指定了主目录;在登录时使用的shell程序名称等。该文件还保存了用户口令;给每个用户提供系统识别号。到这里,就可以通过phpmyadmin拿webshell了,但我还是想继续检测程序漏洞。9.破解系统密码使用LC5导入Unix shadow file文件,即刚才下载的passwd文件,导入后可以看到系统共有295个账号。如图14所示,可以进行破解。10.继续检测web程序漏洞继续通过下载漏洞获取其它文件,在浏览器中输入构造好的地址:来下载bbs.php文件,将bbs.php文件下载到本地后,通过查看源代码,得到连接数据库的文件为conf/db_info.php,于是构造数据库文件下载地址:下载数据库连接文件,得到连接数据库的用户名和密码:$DBkind=mysql;$DBhost=localhost;$DBname=b*;$DBuser=banseuk;$DBpass=se*;?于是登录phpmyadmin(221.*.*.21/mysql)管理数据库,准备查找出网站后台的用户名和密码(有时并不一定能找到phpmyadmin的地址),使用用户名b*以及对应密码se*进行登录,登录Phpmyadmin后发现,该网站管理员表kimsmall7_gadmin竟然是空的,如图15所示。或者说这个不是管理员表?于是先下载登录处理文件看看,构造login文件下载地址:,将其下载到本地,查看一下代码,原来只有ROOT这个用户可以登录,但ROOT用户的密码不在数据库中,而在conf/mkpass.php文件中,而且使用crypt函数加密,如图16所示。说明:不过有的网站是可以有后台登录的,其后台登录处理代码如图17所示。不过如果我没找不到phpmyadmin的地址,也无法查出管理员的密码。而且就算登录了后台管理,也没有可以利用的地方。于是尝试root登录,看看有没有可以利用的地方。先下载root密码文件得到密码如下:$ROOT_PASS=mldzOtDVllwqw;?这是使用了PHP的crypt加密函数加密的,要解密还是比较难,所以就不打算解密了。11.cookie欺骗成功先看看可否使用UPDATE更新管理员密码,先看一下源代码:if($MB_ID=ROOT&$MB_PW!=)include./conf/mkpass.php;$crypt_key=ml5300a;$INPUT_PASS=crypt($MB_PW,$crypt_key);if($INPUT_PASS=$ROOT_PASS)setcookie(MyLootPass,$ROOT_PASS,0,/);getTargetLink(./index.php,);elseecho;这个不是可以cookie欺骗吗?于是打开桂林老兵的mybrowse,打开网站后,点击自定义cookie,把cookie修改为:MyLootPass=mldzOtDVllwqw;PHPSESSID=ae92f7f6cd637f 942071b67b8f4881ad然后刷新一下页面,显示已登录(看左上角),如图18所示。12.得到前台可上传页面这个是前台管理员,在前台管理中,有发公告的地方,并可以上传文件,如图19所示。13.上传php文件受限后台对文件类型做了一些限制,当我选择php文件时,却弹出一个对话框,如图20所示。在没有提交上传的时候,就跳出来对话框,说明肯定本地使用Javascript做了验证,所以可以自己构造一个上传表单来突破,于是先下载上传处理文件upload.php文件。构造其地址:下载到本地后打开该文件查看其源代码if($action=upload)if(is_uploaded_file($HTTP_POST_FILESupFiletmp_name)$upFile_Ext=explode(.,$HTTP_POST_FILESupFilename);if(strstr(html,php3,inc,asp,jsp,$upFile_Extsizeof($upFile_Ext)-1)echo;exit;$filesize=$HTTP_POST_FILESupFilesize;(略去无关代码)if(is_file()$upname=date(His)._.$HTTP_POST_FILESupFilename;move_uploaded_file($HTTP_POST_FILESupFiletmp_name,);else$upname=$HTTP_POST_FILESupFilename;move_uploaded_file($HTTP_POST_FILESupFiletmp_name,);好象可以上传PHP文件的,先构建一个上传表单,代码如下:target=Tmp_Up_Iframe(INPUT type=hidden value=upload name=action)(INPUT type=hidden value=sub1 name=table)(INPUT type=hidden value=200 name=MaxUp_Size)(INPUT type=file name=upFile)(INPUT type=submit value=提交name=SubmitBtn)用时将()改为另存为upload.htm,再次选择一个php文件上传试试,发现并不能上传,如图21所示。于是上传一个gif.phP文件(linux服务器是区分大小写的)。上传成功后,用IE浏览器浏览(不要用Firefox,不然图片也会变成下载),但发现是出现下载页面,服务器不解释。如图22所示。再看一看strstr函数的解释。语法:string

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论