亚当斯州立大学。 如何入侵网站。 第一部分让我们谈谈下一次攻击。 我将告诉您服务器如何识别您。 为此,当通过独立的请求-响应对与服务器进行通信时,在浏览器和服务器之间使用HTTP协议而不保存状态。 因此,服务器一建立连接便会忘记您,并且在下一个会话中它将不再记住您是谁。

但是,他在您使用Web应用程序时会记住您,因为当您将要购买的东西放到购物篮中时,您可以继续购物并再次回来查看购物篮中的内容。 “记忆”的实现使用会话标识cookie进行。 登录服务器后,它将生成一个cookie(由字母和数字组成的唯一序列),并将其发送到浏览器,该浏览器将该cookie本地存储在您的计算机上。 此后,浏览器会将您的单个会话的每个请求返回cookie到服务器。 通过接收这些cookie,服务器可以了解哪种用户正在通过该请求访问它。 这是识别使用Web应用程序的用户的最常用方法。
下一种攻击类型称为跨站点脚本XSS。 这种攻击背后的想法是,攻击者迫使网站显示通常以JavaScript形式的恶意代码,然后在用户的浏览器中执行该恶意代码。 这种攻击可以达到任何目的,但最常用于获取受害者的会话标识符。 会话ID的值是可以将其视为密码,因为它可以识别您的身份。 通过捕获会话标识符,攻击者可以使用代理服务器与目标服务器进行通信来伪装自己。 攻击的目标可能是希望以您的名义说话,自动执行某些操作(例如,以您的名义发送垃圾邮件)或引入病毒。
在Web应用程序中搜索XSS跨站点脚本漏洞时,您正在寻找一个输入字段,可以在其中输入一些信息,将其发送到服务器,然后查看将在浏览器窗口中显示什么结果。

我错误地输入了建筑物的位置,即Plachy Hall,即我们大学篮球队大厅的地址。 Web服务器接收到此信息,并了解计算机科学教授是“书呆子”,他不能住在运动队所在地,并给出错误消息:“ Plachy Hall是错误的”!
在这方面,搜索框最容易受到攻击,您可以在其中输入一些相当晦涩的术语,然后查看获得的回报。 大多数情况下,系统会提示您列出攻击者可以利用的可能的正确选项。
接下来需要做的是检查是否可以注入恶意代码然后执行它。 我们将尝试使用JavaScript组织XSS攻击。

始终通过打开和关闭script标签以及OR运算符来区分JavaScript代码。 应用程序开发人员并不完全愚蠢,因此他们建立了一种称为“消毒”的过滤机制。 它将自身嵌入代码中,检查是否存在任何危险字符,并在可能的情况下将其删除。 最简单的JavaScript消毒测试如下所示:
<script>alert(“Testing”)</script>
但是黑客要聪明一些,因此他们拥有
ha.ckers.org/xss.html 。 我没有时间向您展示此站点,但是您可以找到最复杂的方法来绕过应用程序开发人员试图插入其程序中以删除危险字符的控件。 因此,有一些非常聪明的方法可以使黑客进入应用程序。
因此,让我们谈谈XSS攻击将如何进行。 我们有一个用于“教师页面”的Web服务器,我们将在其中输入恶意代码。 我们有夏娃(Eve),他准备入侵,但我们错过了这张幻灯片上的某些内容-我们忘记了受害者。 XSS攻击的好处是,您无需雇用任何人来进行此操作。 我的意思是,这次我不会成为受害者,因为Eva拥有我的密码,并且她可以使用我的帐户进行任何操作。 因此,夏娃离开了大游戏,不再追逐小男孩。 让我们把受害者带到舞台上(听众大笑,因为幻灯片中出现了一位教授的照片)。
现在,受害者已经取代了他的位置,让我们看看攻击是如何发展的。 假设夏娃设法使用受害者的帐户将恶意JavaScript代码托管在受害者要进入的服务器上。
这很重要,因为一旦受害者登录服务器,她将收到Eva尝试拦截的会话标识符,这是攻击的非常重要的一部分。 因此,受害者请求一个包含恶意JavaScript代码的网页,该代码将在受害者的浏览器中执行并向Eva发送会话标识符。

收到会话标识符后,Eve可以使用她的代理服务器来做她想做的任何事情,从而将自己伪装成受害者。 拼接图唯一缺少的部分是恶意JavaScript本身,黑客必须将其插入页面中,并且必须捕获我们的受害者会话ID并将其传递给攻击者。
这很简单。 我们有以代码的开头和结尾开头和结尾的JavaScript代码:
<script>
代码的第一行以与JavaScript中相同的方式创建图片,为任何页面动态创建图片。 您知道任何图像的核心都是包含该图像的文件,因此我们需要告诉浏览器该去哪里获取该图像。 第二行指出了这一点,指向黑客站点的链接位于该位置,但是浏览器认为这正是所需图像所在的位置。 他将前往夏娃的网站并索要document.cookie,因为他认为这是他需要的图像文件。
但这根本不是图片文件,而是我们试图使用JavaScript捕获的会话标识符。 如您所见,获取会话ID非常简单。 第三行未在执行XSS攻击的代码中使用,它包含一条警报,该警报会触发一条带有攻击消息的浏览器弹出窗口。 这是为我们的示例专门完成的,因为真正的XSS攻击完全没有被受害者注意到。

因此,让我们邀请Eve看看她将如何攻击跨站点脚本。
Eve Hacker:谢谢Loveland博士! 我要做的第一件事是关闭一些我们不需要的东西。 我们不再需要Burp Suit代理,因此我将其关闭。 其次,我需要重新配置Web浏览器并将其切换为使用默认代理系统设置。
现在,让我们进入Loveland博士网站的登录页面,因为如果您还记得的话,我已经有了她的密码,并且可以随时代替她进入该网站。 正如我所提到的,Loveland博士非常懒惰,她使用了过期的SSL证书,因此我必须确认安全例外才能进入登录页面。 由于我知道密码,因此可以编辑她的网页。 众所周知,在用于编辑个人信息的页面上,建筑位置行“建筑位置”中存在一个漏洞,我将在此处输入我的恶意JavaScript。

我简化了这种攻击,因此实际上我不会将代码发送到服务器,而是会调用一个弹出窗口,其中包含有人试图攻击我的消息。 现在,我已经为攻击做好了准备,我将返回到授权页面并注销。 现在,您只需要等待直到出现受害者想要使用此应用程序。

(夏娃戴上棒球帽,冒充教授斯蒂芬·埃尔德里奇(Stephen Eldridge))
我刚从一次有趣的会议上回来,在会议期间,我们讨论了在停车场应优先使用哪种汽车-斯巴鲁(Subaru)或吉普(Jeep),然后我们发现差异可能是汽车的天窗。 因此,现在我需要登录并检查我的联系方式,因为我不想再错过下一次“课外”会议,因为我的数据不可用。 因此,我以saldrich登录名和密码登录到Web应用程序。

因此,一切看起来都像往常一样,作为数学教授,我的页面上没有看到任何不好的东西,所有联系信息都井井有条。
噢,天哪,我的手表显示,距离下一次会议只有2分钟! 现在我要去见Loveland博士,所以我需要转到她的页面,看看我是否可以在她身上挖一些污垢,以便在会议上提及他。 因此,我点击了Susan Loveland链接,进入了她的页面,然后……Eldridge博士,您的页面被黑了!

(埃尔德里奇教授脱下他的棒球帽,变成了夏娃)
现在有了您的会话ID,我就可以使用代理服务器来伪装成您,Eldridge博士,代您做我想做的任何事情。 我请你,洛夫兰德博士!
苏珊洛夫兰:谢谢你,夏娃! 我想提到的是,我们的教师页面应用程序是基于最新的Web框架之一-Python Django Web Framework开发的,该框架具有出色的输入数据清除系统,可从JavaScript代码中删除危险字符。 因此,为了让夏娃进行攻击,我排除了在“建筑物位置”字段的值中检查是否存在此类字符。

跨站点脚本攻击有多成功? 大约80-90%的网站具有客户端漏洞管理机制。 无法抵抗XSS攻击是与最终用户进行更多交互的Web 2.0应用程序中最常见的漏洞。
您可能已经听说过Samy跨站点脚本的最著名的“蠕虫”之一,Samy Kamkar于2005年提出了该蠕虫的作者,他是如何绕过MySpase社交网络的输入过滤的。 就像夏娃对我的页面所做的那样,他在页面上放置了JavaScript。 该脚本做了两件事:将Samy作为朋友添加到受害者手中,并将自己复制到受害者的个人资料页面上。 最初,此攻击进行得非常缓慢,因为只有少数人浏览了Samy的页面并成为了朋友,但此病毒逐渐传播开来,感染开始像雪崩一样增长。 这个示例就XSS攻击的功能而言是说明性的,因为几个小时内有超过一百万个好友请求“破坏”了MySpase网站。 因此,这些攻击的后果可能非常严重。
我今天要谈论的最后一种攻击类型是访问控制攻击或访问攻击。 通过这种攻击,黑客希望获取他无法访问的信息。 访问攻击媒介针对多个漏洞。
通常,应用程序开发人员会忘记他们将文件留在Web服务器上文档的根目录中,如果您可以检测到它们的存在,则可以查看这些文件,这些文件通常包含机密信息。
查找漏洞的另一种方法是非常仔细地查看URL。 例如,如果您看到这样的地址
app.com/ViewDoc.php?docid=1280149120 ,则可以非常简单地在链接末尾搜索数字,以获得不适合您的文档。
许多应用程序是为不同级别的用户设计的,它们具有内置的访问机制,该机制通常基于带有以下参数的请求
app.com/login/home.jsp?admin=false ,因此您可以尝试使用该行中的地址替换来进入站点admin = true。
实际上,最常见的访问控制漏洞是授权功能的错误实现。 现在,夏娃将演示这一点。
Eve Hacker:谢谢Loveland博士。 要进行最后一次攻击,您只需要非常仔细地查看我们Web应用程序的URL。 现在,我将扩展应用程序窗口,以使Loveland博士页面上的地址行完全显示在屏幕上。 我必须摆脱我安装的这个烦人的JavaScript。
我们看到Loveland博士页面的地址为
localhost / SampleSite / Faculty / index-1.html ,如果切换到
Dr.Eldridge页面,则该地址为
localhost / SampleSite / Faculty / index-2.html 。
您不认为这里使用了相同的模板吗? 但是,我对这些地址行不感兴趣,因为它们没有输入信息的能力。 因此,我想访问Loveland博士的登录表。 如果我以她的名字登录,我可以编辑她的个人信息。 但是,让我们看一下该页面的URL,该URL的末尾是IndexForm-1,您可以猜测也许有机会获得Dr. Eldridge的数据形式。

因此,问题是我们是否可以不用代表他登录就可以进入他的表格。 让我们尝试一下。 我将单位更改为两个,以使地址的格式为
localhost / SampleSite / Faculty / indexForm-2.html ,
按 Enter键,然后出现一个包含Eldridge博士个人信息的页面。

在我们面前的是Loveland博士的学生忘记修复的错误-该应用程序具有一个漏洞,该漏洞使它无需进入受害者的登录即可进入他人的页面。
Eldridge博士是一个非常友善的人,我不想惹恼他,我没有反对他的事,但是为了笑声,我会在他的页面上留下一些东西。 让我歪曲他的名字和姓氏,同时将职位从“教授”更改为“初级老师”。

现在,我将更正后的个人信息发送到服务器,如果现在进入Eldridge页面,则可以在其上看到我所做的更正。

因此,Loveland博士,如果您在讲座结束后决定拘留您时Eldridge博士遇到问题,请告诉我,我将删除他的所有信息!
苏珊·洛夫兰(Susan Loveland):感谢您的支持,夏娃(Eve)! 我想再谈一谈访问控制漏洞。 对于像我一样喜欢钻研代码的人,我将解释这次攻击发生的情况。

此幻灯片显示了如何使用个人信息填写表格。 最后一行正是夏娃感兴趣的。 此类可保护form_index免受快速函数@ login-required和@authUser的影响,并检查是否要更改表单字段中的值的任何人必须为此登录系统。 但是,开发人员忘记了这一点,并且在填写表单时并未添加对这些快速功能的强制性提及。
显示的代码检查请求的表单是否与登录系统的人匹配,但是由于未正确使用它,因此Eve能够在应用程序中检测到此漏洞。
我注意到,所有站点中有78%具有访问漏洞。 去年四月,一些黑客在伯克利大学校园内发现了一个漏洞-这些是开发人员留在Web服务器文档服务器上的隐藏文件。 黑客能够查看这些文件,并获得16万多人的社会保险号和机密医疗信息。 因此,您将看到访问控制攻击的后果有多严重。
我想在今天我们的谈话主题中提到一些更有趣的事实。 最近,政府对网络安全的关注急剧上升。 因此,仅在2008年,国防部就记录了超过3.6亿次黑客攻击企图。 计划在2010年用于改善信息技术领域的网络安全系统的支出约为758亿美元,比2009年用于这些目标的支出增加7.2%。 根据《 CNN财经》杂志的报道,2009年在美国,互联网安全专家在最受欢迎的行业中名列前茅。 顾问在计算机安全领域的平均年收入为9.97万美元,最高为15.2万美元。 根据预测,从2006年到2016年,此类专家的需求将增长27%。
我想说的是,计算机科学学院最近有机会获得Internet计算和网络安全的副学士学位,因此这是在该领域开始职业的一个很好的起点。
(戴黑帽子)
夏娃·哈克(Eve Hacker):我想打扰一下,洛夫兰德博士! 对于在场观众中将来的老师,我注意到,如果您掌握了该专业,并且有朝一日发现自己处在没有收到承诺的加薪的情况下,那么您总可以求助于黑手党,并为他们做合同。 这将是计算机科学老师的薪水的极大提高。
(摘下帽子)
苏珊·洛夫兰(Susan Loveland):我要感谢为创建今天的演示文稿做出了重要贡献的人们,即“教职页面”的开发者。 我认为,由于他们的辛勤工作,我将能够在没有校园警察戴上手铐和护送的情况下离开听众。 该组中唯一“尚存”的成员是Ryan Goldsworthy,他在这些页面的开发中发挥了重要作用。 我要感谢Stephen Eldridge博士的幽默感,并提交了个人页面来演示攻击,感谢为我的Faculty Pages项目慷慨贡献的部门负责人,并感谢校园计算机计算服务保护我们免受此类攻击人们喜欢夏娃。
谢谢您的关注。
感谢您与我们在一起。 你喜欢我们的文章吗? 想看更多有趣的资料吗? 通过下订单或将其推荐给您的朋友来支持我们,
为我们为您发明的入门级服务器的独特模拟,为Habr用户提供
30%的折扣: 关于VPS(KVM)E5-2650 v4(6核)的全部真相10GB DDR4 240GB SSD 1Gbps从$ 20还是如何划分服务器? (RAID1和RAID10提供选件,最多24个内核和最大40GB DDR4)。
VPS(KVM)E5-2650 v4(6核)10GB DDR4 240GB SSD 1Gbps直到春季免费,在支付半年
费用时,您可以
在此处订购。
戴尔R730xd便宜2倍? 仅
在荷兰和美国,我们有
2台Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100电视(249美元起) ! 阅读有关
如何构建基础架构大厦的信息。 使用价格为9000欧元的Dell R730xd E5-2650 v4服务器的上等课程?