ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:33.18KB ,
资源ID:3461633      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3461633.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Web 攻防无限制.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Web 攻防无限制.docx

1、Web 攻防无限制Web 攻防无限制第三章 Web 攻防无限制 Web 就是我们常说的“网页” ,在进行网页浏览的时候大家是否考虑过安全方面的问题?是否遇见过一些网页访问后系统就出现问题?是否发现自己的首页被强行设置为 XXX 网站的地址?是否被迫观看一些无聊的广告我们将这些现象统称为“Web 攻击” 。既然被攻击,那就应该知道攻击的原理及如何去防范这些攻击。 3.1 常见 ASP 脚本攻击 由于 ASP 的方便易用,越来越多网站的后台程序使用 ASP 脚本语言。但是,由于 ASP本身存在一些安全漏洞,稍不留心就会给黑客留下可乘之机。事实上,安全不仅是网管的事,编程人员也必须在某些安全细节上注

2、意,养成良好的安全习惯,否则会给自己的网站带来巨大的安全隐患。目前,大多数网站上的 ASP 程序有这样那样的安全漏洞,但如果写程序的时候注意的话,还是可以避免的。 1用户名与口令被破解 攻击原理 用户名与口令,往往是黑客们最感兴趣的东西,如果被通过某种方式看到源代码,后果是严重的。 防范技巧 涉及用户名与口令的程序最好封装在服务器端,尽量少在 ASP 文件里出现,涉及与数据库连接的用户名与口令应给予最小的权限。出现次数多的用户名与口令可以写在一个位置比较隐蔽的包含文件中。如果涉及与数据库连接,理想状态下只给它以执行存储过程的权限,千万不要直接给予该用户以修改、插入、删除记录的权限。 2验证被绕

3、过 攻击原理 现在需要经过验证的 ASP 程序多是在页面头部加一个判断语句,但这还不够,有可能被黑客绕过验证直接进入。 98 曝光黑客 曝光黑客 防范技巧 需要经过验证的 ASP 页面,可跟踪上一个页面的文件名,只有从上一页面转进来的会话才能读取这个页面。 3INC 文件泄露问题 攻击原理 当存在 ASP 的主页正在制作并没有进行最后调试完成以前,可以被某些搜索引擎机动追加为搜索对象,如果这时候有人利用搜索引擎对这些网页进行查找,会得到有关文件的定位,并能在浏览器中察看到数据库地点和结构的细节揭示完整的源代码。 防范技巧 程序员应该在网页发布前对其进行彻底的调试;安全专家需要固定 ASP 包含

4、文件以便外部的用户不能看它们。首先对.inc 文件内容进行加密,其次也可以使用.asp 文件代替.inc 文件使用户无法从浏览器直接观看文件的源代码。.inc 文件的文件名不用使用系统默认的或者有特殊含义容易被用户猜测到的,尽量使用无规则的英文字母。 4自动备份被下载 攻击原理 在有些编辑 ASP 程序的工具,当创建或者修改一个 ASP 文件时,编辑器自动创建一个备份文件,比如:UltraEdit 就会备份一个.bak 文件,如你创建或者修改了 some.asp,编辑器自动生成一个叫 some.asp.bak 文件,如果你没有删除这个.bak 文件,攻击者有可以直接下载 some.asp.ba

5、k 文件,这样 some.asp 的源程序就会被下载。 防范技巧 上传程序之前仔细检查,删除不必要的文档。对以 BAK 为后缀的文件要特别小心。 5特殊字符 攻击原理 输入框是黑客利用的一个目标,他们可以通过输入脚本语言等对用户客户端造成损坏;如果该输入框涉及数据查询,他们会利用特殊查询输入得到更多的数据库数据,甚至是表的全部。因此必须对输入框进行过滤。但如果为了提高效率仅在客户端进行输入合法性检查,仍有可能被绕过。 99 C Ch ha ap pt te er r 3 3 W We eb b 攻 攻防 防无 无限 限制 制 防范技巧 在处理类似留言板、BBS 等输入框的 ASP 程序中,最好

6、屏蔽掉 HTML、JavaScript、VBScript 语句,如无特殊要求,可以限定只允许输入字母与数字,屏蔽掉特殊字符。同时对输入字符的长度进行限制。而且不但在客户端进行输入合法性检查,同时要在服务器端程序中进行类似检查。 6数据库下载漏洞 攻击原理 在用 ACCESS 做后台数据库时,如果有人通过各种方法知道或者猜到了服务器的ACCESS 数据库的路径和数据库名称,那么他就能够下载这个 ACCESS 数据库文件,这是非常危险的。 防范技巧 (1)为数据库文件名称起个复杂的非常规的名字,并把它放在几目录下。所谓“非常规” ,比如有个数据库要保存的是有关书籍的信息,可不要把它取个“book.

7、mdb”的名字,取个怪怪的名称,比如 d34ksfslf.mdb,再把它放在如/kdslf/i44/studi/的几层目录下,这样黑客要想通过猜的方式得到你的 ACCESS 数据库文件就难上加难了。 (2)不要把数据库名写在程序中。有些人喜欢把 DSN 写在程序中,比如:DBPath= Server.MapPath ( “cmddb.mdb” )conn.Open “driver=Microsoft Access Driver (*.mdb); dbq=”& DBPath 假如万一给人拿到了源程序,你的 ACCESS 数据库的名字就一览无余。因此建议你在ODBC 里设置数据源,再在程序中写下:

8、 conn.open“shujiyuan” (3)使用 ACCESS 来为数据库文件编码及加密。首先,执行“工具安全加密解密数据库”命令,选取数据库(如:employer.mdb) ,确定后会出现“数据库加密后另存为”的窗口, 存为: employer1.mdb。 接着 employer.mdb 就会被编码, 然后存为 employer1.mdb。 要注意的是,以上的操作并不是对数据库设置密码,而只是对数据库文件加以编码,目的是为了防止他人使用别的工具来查看数据库文件的内容。 接下来我们为数据库加密,首先以打开经过编码了的 employer1.mdb,在打开时,选择“独占”方式。然后,选取功能

9、表的“工具安全设置数据库密码”命令,输入密码即可。这样即使他人得到了 employer1.mdb 文件,没有密码也是无法看到 employer1.mdb 的。 100 曝光黑客 曝光黑客 3.2 防不胜防跨站 Script 攻击 人们往往这样给黑客画像:一个孤独的人,悄悄进入别人的服务器中,进行破坏或者窃取别人的秘密资料。黑客还会攻击访问网站的客户,服务器也成了他的帮凶。微软称这种攻击为“跨站 Script”攻击。而这种攻击大多数都发生在网站动态产生网页的时候,黑客的目标并不是网站,而是浏览网站的客户。 3.2.1 攻击原理 如果服务器对客户的输入不进行有效验证,黑客就会输入一些恶意的 HTM

10、L 代码,如插入一些令人厌恶的图片或声音等。同时,也能干扰客户正常浏览网页。 恶意的标签和 Script 不是单纯的恶作剧,它们可以窃取资料和捣毁系统。黑客能够使用Script 干扰或者改变服务器数据的输入。利用 Script 代码还能攻击客户系统,破坏硬盘数据。 在客户使用服务器的时候,黑客的 Script 也正在服务器里运行着。如果客户对自己的服务器非常信任,同样他们也会信任那些恶意的 Script 代码。甚至这个代码是以Script或者Object的形式来自黑客的服务器。 1跨站Script 攻击示例 动态输入大致有这几种形式:URL 参数、表格元素、Cookies 以及数据请求。让我们

11、来分析 MyNiceS 这个只有两个页面的网站。第一页使用一张表格或 Cookie 来获取用户名: % If Request.Cookies(userName) Then Dim strRedirectUrl strRedirectUrl=page2.asp?user Name= strRedirectUrl = strRedirectUrl & Response.Cookies(userName) Response.Redirect(strRedirectUrl) Else % 101 C Ch ha ap pt te er r 3 3 W We eb b 攻 攻防 防无 无限 限制 制 M

12、yNiceS Home Page MyNiceS Enter your MyNiceS username: 第二页返回用户名以示欢迎: % Dim strUsername If Request.QueryString(username) Then strUsername = Request.QueryString(username) Else Response.Cookies(username) = Re quest.Form(username) strUserName = Request.Form(user Name) End If % Hello: 102 曝光黑客 曝光黑客 如果输入 S

13、cript 代码:alert(Hello);,JavaScript 警告标签就会弹出来。 下一次访问时,这个警示标签同样会出现。这是因为 Script 代码在第一次访问的时候就已经留在 Cookie 中了。 2用E-mail 进行跨站 Script 攻击 下面还是以 MyNiceS 网站为例进行说明。由 于你经常浏览这个网站,在不知不觉中就会把浏览器设置为“总是信任这个动态网站内容” 。 3ActiveX 攻击说明 ActiveX 对系统的操作就没有严格地被限制。如果一旦被下载,就可以像装的可执行程序一样做自己想干的事情。针对这一特点,IE 浏览器也作了某些限制,如对于那些不安全的站点,在它的

14、默认设置中就会不允许进行下载或者出现警告提示。 但是,对于那些没有多少经验的用户来说,他们往往不自觉地对原来的设置进行了修改,使控件在没有任何提示的情况下就下载了。另外,对一个新手来说,即使在有提示的情况下也会不假思索地下载那些没作任何标记的控件。在所举的例子中,由于你对该站点的信任,改了浏览器的设置,这样,ActiveX 控件在不经过任何提示的情况下就下载,并在你的机器上不知不觉地开始运行。 4进制编码的ActiveX Script 攻击 要把用心不良的标签和 Script 区分出来是一件非常困难的事。Script 还可以 16 进制的形式把自己藏起来。看看下面这个 E-mail 范例吧,它

15、是以 16 进制的形式被发送出去的: 这 几乎 是一封 完整 的 邮 件,里面包含 了 以 16 进制 伪造 的 URL 参 数 : sender= 。当用户点击链接时,用户的浏览器就会直接开始第一例所说的处理过程而弹出警告窗口。 3.2.2 防范技巧 防止跨站 Script 攻击的技术正趋于完善,目前可采取以下几种方式来防止跨站 Script 的攻击。 103 C Ch ha ap pt te er r 3 3 W We eb b 攻 攻防 防无 无限 限制 制 1对动态生成页面的字符进行编码 首先,必须对动态生成页面的字符进行编码,否则黑客很有可能更改字符设置而轻易地通过你的防线。如果是个

16、英文网站,只要把字符编码设成拉丁字符 ISO-8859-1 就行了: 2过滤和限制所有输入的数据 在进行登录的时候,不要将那些特殊的字符输入进去。因此,可在 ONSUBMIT 方法中加入 JavaScript 程序来完成这个功能。在本例中限制最多只能输入 15 个字符,这样可以阻止那些较长的 Script 输入。 3使用 HTML 和 URL编码 尽管使用上面所说的过滤和限制输入的办法是一种非常重要的防御手段,但它对于采用邮件方式的攻击还是无能为力。针对这种情况,不得不采取一种更有力的安全措施。如果用的是 ASP,只要对动态生成的网页进行 HTML 和 URL 编码就行了。根据范例的情况,在第

17、一输入页中对 redirect URL 做出如下改动: strRedirectUrl=strRedirectUrl&_server.URLEncode(Response.Cookies(userName) ) 在执行页中加入: strUserName=server.HTMLEncode(Request.QueryString(userName) )和 strUser Name=server.HTMLEncode(Request.Form(userName)) 微软推荐对所有动态页面的输入和输出都进行编码。甚至在对数据库数据的存入和取出也应如此。这样,就能在很大程度上避免跨站 Script 的攻

18、击。 也可增加一个 IIS组件用于过滤所有从动态输入中的特殊字符。 对于那些已经做好的网站,采用这种办法来防止跨站 Script 的攻击非常容易。 这个控件能拦截来自 ASP 页面的 REQUEST目标,可对表格、Cookie、请求字串和程序的内容进行检测;也可以通过编写 log 文件的方法把统计数据加入这个组件中。每当一个客户输入一个非法字符时,这个组件会记下它的 IP地址和时间。 只需要采取一些简单的步骤就能有效地阻止跨站 Script 的攻击。除了以上所说的三种方法外,微软还强烈推荐使用一种称之为“Sanity Check”的方法。假设有个输入窗口只允许输入数字,就给它做个限定,只允许

19、09 数字的输入。微软所采用的这种对输入的字符进行限定的办法要比单独采用过滤特殊字符的效果好。采用了这些措施后,就能让那些浏览网站的客户在访问网站时受到保护。 104 曝光黑客 曝光黑客 3.3 脚本攻击入侵 Leadbbs Leadbbs 是国内最流行的免费共享论坛源码之一。国内许多个人网站都使用该源码搭建自己的网站论坛。但是,Leadbbs 本身存在一些致命的漏洞,黑客只需要稍加利用,便会进入论坛的核心,实施破坏。 3.3.1 攻击原理 以 http:/www.16163W 为例,黑客常用的攻击步骤如下: 1先注册一个用户。 2查看管理员 ID。在 http:/www.16163W处查看管

20、理人员名单,点击就可看管理员 ID 了。这里假设管理员账号为 16163,ID为 2。 3进入用户修改资料页面。先随便注册一个名字进入论坛,比如:cnwill,然后进入用户修改资料页面:http:/www.16163W该网页全部打开后,执行“文件另存为”命令,选择“Web 页,全部”项。 4修改代码。用写字板打开所下载页面的代码,找到修改用户资料处,把“value=2”中的 2 修改为我们刚才查看的管理员 ID,然后保存修改后的页面。 5欺骗 Leadbbs。打开我们刚才保存的页面,把地址栏中的地址修改为 http:/www.16163W 后按下回车。这时,就可以发现用户 ID“cnwill”

21、已经变成 16163 了。点击“重登录” ,输入管理员名字16163,密码不更改。登录成功后,黑客就完全拥有管理员权限了。 3.3.2 防范技巧 1定期修改管理员密码。 2在管理界面中限定个人签名。 3禁止修改个人资料。 4修改数据库原目录和数据库名字,尽量将名字设置得复杂些,让黑客猜不到。 5修改后台管理路径,这样即使获取了管理员密码,也不能直接用默认的管理路径进入。 105 C Ch ha ap pt te er r 3 3 W We eb b 攻 攻防 防无 无限 限制 制 6修改 USERMODIFY.ASP。 (1) 在 DEF_BBS_HomeUrl=./之上再加一行 DimSup

22、erEditID, server_v1, server_v2。 (2)去掉 DimSuperEditID (3)在 Function saveFormData 下面加上如下语句: if instr(Request.ServerVariables(http_referer),&Request.ServerVariables(server_ name)&) = 0 then response.write“非法闯入!影子鹰安全网 ” response.end end if 3.4 DCP Portal 系统的严重漏洞 DCP-Portal是一款基于 Web的内容管理系统, 能使管理员远程管理整个站点

23、。 由于 DCP- Portal 所有文件没有过滤用户提交的变量,导致任意用户可轻易利用 SQL 注入技术来攻击DCP Portal。 3.4.1 攻击原理 如果服务器的 php.ini 里有 magic_quotes_gpc=off,那么 DCPPortal 是相当危险的。如果 php.ini 里有 register_globals=off,那么 DCP Portal 将不能正常运行。所有的文件里,没有检查用户提交的变量。例如,可以通过 advertiser.php 文件获取所有用户名/口令,提交如下语句: http:/localhost/dcp/advertiser.php?adv_log

24、ged=1&username=1&password=qwe or1=1UNION selectuid,name,password,surname,job,emailfromdcp5_members intooutfile c:/apache2/htdocs/dcpad.txt 如果是 Windows 服务器,就会在 c:/apache2/htdocs/目录下创建 dcpad.txt 文件。并记录了所有用户的一切敏感信息。但是 UNIX 下却不能这样提交,只有在: 106 曝光黑客 曝光黑客 http:/localhost/dcp/advertiser.php?adv_logged=1&user

25、name=1&password=qwe or 1=1 UNION select uid,name,password,surname,job,email from dcp5_members intooutfile /var/www/html/dcpad.txt 这种情况下,需要知道程序的绝对路径。当 php.ini 里有 display_errors=on 时,提交以下语句,就可以返回绝对路径。 http:/localhost/dcp/advertiser.php?adv_logged=1&username=1&password= 在查询里使用 UNION 函数的前提是服务器必须运行着 MySQ

26、L 4.x,因为只有 MySQL 4.x才支持子查询。如果服务器运行 MySQL 3.x,我们还可以利用 lostpassword.php 文件,提交以下语句: http:/localhost/dcp/lostpassword.php?action=lost&email=fake or 1=1- 这对 DCP Portal 来说是非常严重的。因为这样会重置所有用户的密码,所有用户将收到和用户数一样多的邮件,并且所有用户的密码将是在最后电子邮件里提供的那个。 3.4.2 防范技巧 只要把 magic_quotes_gpc 设置为 on,就可以解决这些问题。另外,可以随时关注官方的补丁。 3.5

27、Discuz 论坛短消息未限发送次数漏洞 Discuz 论坛是由 Crossday 工作室()开发的 PHP 论坛系统。由于pm.php 发送消息那部分代码缺乏对时间间隔的限制,导致用户间可以发送消息炸弹。这样,就会出现服务器空间、资源被消耗,导致拒绝服务的情况。 3.5.1 攻击原理 通过对 pm.php 文件的分析,大家可以看到 pm.php 文件第 86 行以下的代码如下: 86 elseif($action = send) 87 88 if(!$pmsubmit) 107 C Ch ha ap pt te er r 3 3 W We eb b 攻 攻防 防无 无限 限制 制 179 s

28、howmessage(pm_send_succeed,pm.php); 180 这部分代码没有检测用户发送短信的时间间隔限制代码,这就是漏洞所在。 我们只要注册任意用户登录后,提交: http:/127.0.0.1/discuz/pm.php?action=send&pmsubmit=submit&msgto=angel& subject=test&message=test 就可以轰炸 angel 这个用户了 3.5.2 防范技巧 可以利用 PHP 的 Session 或者 Cookie 来限制用户每次发信的间隔。处理用户发送短信时,可以选择以下两种方式区别用户是否在规定的时间内连续发送短信。假设管理员设置两次发帖时间的间隔为 2 分钟,看看下面两个例子: 1Cookie方式 if ($beforepmid) die(对不起,你两次发信的时间间隔还不到 2 分钟); / $beforepmid 前一次发信的 ID else setcookie(beforepmid,$pmid,time()+60*2,/,0); / $pmid

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1