Web应用程序攻击

Web应用程序攻击

0.前言

  实验环境说明:实验均在 Webgoat 下进行,需要抓包工具支持。Webgoat、抓包 工 具 Burpsuite 社 区 版 (Windows) 以 及 Webscarab 均可在https://mclass.cn3.quickconnect.cn/notes/Web 安全 目录中下载,你也可以使用其他的能够截获 HTTP 的工具进行实验

  Webgoat 为 Web 安全实验平台,可以在本地安装,使用虚拟机构造服务器192.168.188.128

  抓包工具,可以使用 Burpsuite 和 Webscarab

  (这是之前的作业题目,也是回顾一下相关的攻击,包括webgoat好久没用了)

1.跨站请求伪造攻击

  使用两个不同的浏览器 : 浏 览 器 A 和 浏 览 器 B , 同时登录webgoat :http://192.168.188.128/webgoat/attack (依据你的服务器地址和端口可能)。记下各自的cookie 值

  • 谷歌登录:

  • 火狐登录:

  然后查看两个浏览器的相关cookie内容:

  选择 webgoat 中的Cross-site Scripting (XSS) - Cross Site Request Forgery(CSRF)

  浏览器 A (CSRF 攻击者) 填写 bbs 信息并提交,其中消息包括

1
<img src="http://localhost:8888/webgoat/attack?Screen=81&menu=210&transferFunds=88888" width="1" height="1" />

  注:数值 88888 可以修改成自己设置的数值

  点击 Submit 后

  通过浏览器 B(受害者),点击 Message List 中的链接

  查看抓包记录(下图为 Webscarab 记录)

  火狐相关抓包

  解释所观察到的现象为什么是一个典型的CSRF 攻击

  1. 用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A;
  2. 在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A;
  3. 用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B;
  4. 网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A;
  5. 浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带Cookie信息,向网站A发出请求。网站A并不知道该请求其实是由B发起的,所以会根据用户C的Cookie信息以C的权限处理该请求,导致来自网站B的恶意代码被执行。

  在所抓包的数据中我们可以看到,在火狐点击相关的网址界面后,,所使用的cookie值最后反馈在数据包中,这样子就能被谷歌的攻击者所利用,并以火狐受害者的身份以及权限进行相关操作,因此这是一个典型的CSRF攻击

2.跨站脚本攻击

  访问 http://192.168.188.128/webgoat/attack (地址/端口依据实际来定义)选择 Cross-Site Scripting (XSS)

  LAB: Cross Site Scripting

  (1) 选择 Stage 1,进行存储型 XSS 攻击

  以 Tom 的身份, 在编辑个人信息页面上的 Street 字段写入脚本,

1
<script>alert(“SXSS Hacked by 你的名字”);</script>

  并以其他用户的身份(如 Jerry) 登录, 验证该用户受到这个攻击。

  注: 口令字为用户名的小写形式, 如 Tom 的口令字为 tom

  这里由于不能识别中文,所以将姓名改为名字缩写,然后攻击成功了,选择 stage 5,反射型 XSS 攻击. 以任一用户登录,点击 Search Staff,输入

1
<script>alert(“RXSS Hacked by 你的名字”);</script>

  点击确定,验证该用户受到这个攻击

  存储型XSS:存储型XSS,持久化,代码是存储在服务器中的,如在个人信息或发表文章等地方,插入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,用户访问该页面的时候触发代码执行。这种XSS比较危险,容易造成蠕虫,盗窃cookie

  反射型XSS:非持久化,需要欺骗用户自己去点击链接才能触发XSS代码(服务器中没有这样的页面和内容),一般容易出现在搜索页面。反射型XSS大多数是用来盗取用户的Cookie信息。

  通过两种跨站脚本攻击,我们都是利用了html的相关脚本漏洞通过alert达到我们想要的内容警报效果,这都是输入的漏洞问题

3.总结

——跨站点请求伪造

    CSRF尽管听起来很像XSS跨站脚本攻击,但是它于XSS完全不同。XSS是利用站点内的信任用户,而CSRF则是通过伪装来自受信任用户的请求来利用受信任的站点,从而在并未授权的情况下执行在权限保护之下的操作。与XSS相比,CSRF攻击不大流行和难以防范,所以比XSS更具危险性。

    服务端的预防CSRF攻击的方式方法有多种,但思想上都是差不多的,主要从以下2个方面入手:

    1、正确使用GET,POST和Cookie

    2、在非GET请求中增加伪随机数

——跨站脚本攻击

    XSS跨站脚本攻击指攻击者在网页中嵌入客户端脚本,当用户浏览此网页时,脚本就会在用户的浏览器上执行,从而达到攻击者的目的,比如获取用户的Cookie,导航到恶意网站,携带木马等。

    针对XSS跨站脚本攻击,我们的防御原则是不相信用户输入的数据,对应的防御措施如下:

    1、在cookie中不要存放一些敏感信息

    2、输入过滤校验,对用户提交的数据进行有效性验证


Web应用程序攻击
https://one-null-pointer.github.io/2023/03/15/Web练习——Web应用程序攻击/
Author
liaoyue
Posted on
March 15, 2023
传送口