热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

2018201920165118《网络对抗技术》Exp9Web安全基础

##2018-201920165118《网络对抗技术》Exp9Web安全基础一.实践内容本实践的目标理解常用网络攻击技术的基本原理,做不少于7个题目,共

## 2018-2019 20165118 《网络对抗技术》Exp9 Web安全基础

一.实践内容

本实践的目标理解常用网络攻击技术的基本原理,做不少于7个题目,共3.5分。包括(SQL,XSS,CSRF)。Webgoat实践下相关实验。

二.实践过程记录

2.1开启webgoat:

  • 1.下载webgoat-container-7.0.1-war-exec.jar文件
  • 2.使用命令java -jar webgoat-container-7.0.1-war-exec.jar运行Webgoat
  • 3.在浏览器中输入http://localhost:8080/WebGoat进入WebGoat登录界面,默认用户名密码guest登录
    1322858-20190526201514769-756383891.png

SQL注入攻击:

2.2 String SQL Injection(SQL字符串注入):

目尝试输入Smith,发现查询出来都是last_name是Smith的表单,分析后知道是需要WHERE这个条件语句失效,因此构造一个用真式'or 1='1 。
1322858-20190526201548080-653592757.png

2.3:Log Spoofing(日志欺骗):

因为我们输入的用户名会被追加到日志文件中。所以我们可以使用障眼法来使用户名为“admin”的用户在日志中显示“成功登录”,例如在User Name文本框中输入%0d%0aLogin succeeded !admin ,其中%0d是回车,%0a是换行符,结果就像登录成功一样。
1322858-20190526201621992-522390858.png

2.4:Stage 1 String SQL Injection

字符串型注入,要求使用SQL注入绕过认证,实现无密码登陆。

在密码栏输入' or 1 = 1 -- ,发现输入错误:
1322858-20190526201835781-826489925.png

把长度限定改为15,把文本框格式改为text,再次输入' or 1 = 1 --,成功。
1322858-20190526201848220-24474870.png
1322858-20190526201936382-853432224.png

2.5 Stage 3 Numeric SQL Injection

数字型注入,要求使用一个普通员工的账户,浏览其BOSS的账户信息。
首先通过Larry的账户登陆(密码为larry),更改登录后页面源代码value值为112 or 1=1 order by salary desc 。
1322858-20190526202248332-1614679988.png

点击ViewProfile查看信息:
1322858-20190526202311336-591955245.png

2.6 Blind Numeric SQL Injection(盲数字注入)

使用盲注方式,输入101 AND ((SELECT pin FROM pins WHERE cc_number='1111222233334444') > 2500),显示不合法:
1322858-20190526202341023-1304809210.png

再次输入101 AND ((SELECT pin FROM pins WHERE cc_number='1111222233334444') > 2300)显示合法:
1322858-20190526202458332-338598772.png

最后试出来值为2364,成功。
1322858-20190526202522806-1531329116.png

XSS攻击

2.7 Phishing with XSS(跨站脚本钓鱼攻击)

关于一个页面中存在XSS漏洞时,它如何支持钓鱼攻击。
在文本框里面写一个钓鱼网站代码就可以了,这里我参考了其他同学的代码,将代码粘过去后登录,成功。
1322858-20190526202604418-936640722.png

2.8 Stored XSS Attacks

题目要求:要创建非法的消息内容,可以导致其他用户访问时载入非预期的页面或内容。
直接在title里随便输入,然后在message中输入一串代码,比如: 提交后,再次点击刚刚创建的帖子,成功弹出窗口,说明攻击成功。
1322858-20190526202633577-1166140287.png

2.9 Reflected XSS Attacks

将带有攻击性的URL作为输入源,比如 ,就会弹出对话框:
1322858-20190526202651714-1391880000.png

CSRF攻击

2.10 Cross SSite Request Forgery(CSRF)

题目要求:需要写一个URL诱使其他用户点击,从而触发CSRF攻击。
在message里面输入attack?Screen=282&menu=900&transferFunds=10000,就会发出一个转钱的请求,盗取钱财。
1322858-20190526202834012-1873399085.png

提交后,会在消息列表中看到一个新的消息,点击该消息,当前页面就会下载这个消息并显示出来,转走用户的钱,达到CSRF攻击的目的。

2.11 CSRF Prompt By-Pass

这个就是利用CSRF进行冒名操作转账,不过这次包括了两个请求,一是转账请求,二是确认转账成功请求,即需要额外传递两个参数给服务器(transferFunds=5000,transferFunds=CONFIRM)。直接在message中写入攻击代码,然后提交:
1322858-20190526202857491-1418119067.png

三、实验问题回答

(1)SQL注入攻击原理,如何防御

  • 攻击原理: SQL注入攻击指的是通过构建特殊的输入作为参数传入web应用程序,而这些输入大都是SQL语法里的一些组合,程序通过执行SQL语句进而执行攻击者所要的操作。其主要原因是程序没有细致的过滤用户输入的数据,致使非法数据侵入系统
  • 防御方法:
    对输入的数据进行过滤,将常见的sql语句的关键词:select or ' " 等字符进行过滤。
    对在数据库中对密码进行加密,验证登陆的时候先将密码进行加密再与数据库中加密的密码进行对比,若此时一致则基本是安全的。
    对数据库中密码采用常用的MD5加密时尽量在字符串的前边和后边加上指定字符后在进行加密,这样即便是看到了数据库也很难破解密码。

(2)XSS攻击的原理,如何防御

  • 攻击原理: XSS攻击是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。
  • 防御方法:
    当恶意代码值被作为某一标签的内容显示&#xff1a;在不需要html输入的地方对html标签及一些特殊字符( ” <> & 等等 )做过滤&#xff0c;将其转化为不被浏览器解释执行的字符。
    当恶意代码被作为某一标签的属性显示&#xff0c;通过用“将属性截断来开辟新的属性或恶意方法&#xff1a;属性本身存在的单引号和双引号都需要进行转码&#xff1b;对用户输入的html标签及标签属性做白名单过滤&#xff0c;也可以对一些存在漏洞的标签和属性进行专门过滤。

&#xff08;3&#xff09;CSRF攻击原理&#xff0c;如何防御

  • 攻击原理&#xff1a; CSRF跨站请求伪造是一种对网站的恶意利用&#xff0c;通过伪装来自受信任用户的请求来利用受信任的网站。
  • 防御方法&#xff1a;
    通过referer、token或者验证码来检测用户提交。
    尽量不要在页面的链接中暴露用户隐私信息。
    对于用户修改删除等操作最好都使用post操作。
    避免全站通用的COOKIE&#xff0c;严格设置COOKIE的域。

四、实验总结与体会

在以后在设计网站的时候一定要谨慎&#xff0c;针对这些攻击做出相应的防范措施&#xff0c;提高网络的安全性。

转:https://www.cnblogs.com/lbz20165118/p/10927394.html



推荐阅读
  • Android目录遍历工具 | AppCrawler自动化测试进阶(第二部分):个性化配置详解
    终于迎来了“足不出户也能为社会贡献力量”的时刻,但有追求的测试工程师绝不会让自己的生活变得乏味。与其在家消磨时光,不如利用这段时间深入研究和提升自己的技术能力,特别是对AppCrawler自动化测试工具的个性化配置进行详细探索。这不仅能够提高测试效率,还能为项目带来更多的价值。 ... [详细]
  • Spring Boot 实战(一):基础的CRUD操作详解
    在《Spring Boot 实战(一)》中,详细介绍了基础的CRUD操作,涵盖创建、读取、更新和删除等核心功能,适合初学者快速掌握Spring Boot框架的应用开发技巧。 ... [详细]
  • 本文探讨了在Android应用中实现动态滚动文本显示控件的优化方法。通过详细分析焦点管理机制,特别是通过设置返回值为`true`来确保焦点不会被其他控件抢占,从而提升滚动文本的流畅性和用户体验。具体实现中,对`MarqueeText.java`进行了代码层面的优化,增强了控件的稳定性和兼容性。 ... [详细]
  • 如何在Java中高效构建WebService
    本文介绍了如何利用XFire框架在Java中高效构建WebService。XFire是一个轻量级、高性能的Java SOAP框架,能够简化WebService的开发流程。通过结合MyEclipse集成开发环境,开发者可以更便捷地进行项目配置和代码编写,从而提高开发效率。此外,文章还详细探讨了XFire的关键特性和最佳实践,为读者提供了实用的参考。 ... [详细]
  • 在Laravel中实现PHP对JSON数据的发布与处理 ... [详细]
  • Windows环境下详细教程:如何搭建Git服务
    Windows环境下详细教程:如何搭建Git服务 ... [详细]
  • 本文深入探讨了 iOS 开发中 `int`、`NSInteger`、`NSUInteger` 和 `NSNumber` 的应用与区别。首先,我们将详细介绍 `NSNumber` 类型,该类用于封装基本数据类型,如整数、浮点数等,使其能够在 Objective-C 的集合类中使用。通过分析这些类型的特性和应用场景,帮助开发者更好地理解和选择合适的数据类型,提高代码的健壮性和可维护性。苹果官方文档提供了更多详细信息,可供进一步参考。 ... [详细]
  • 本文将详细介绍在Android应用中添加自定义返回按钮的方法,帮助开发者更好地理解和实现这一功能。通过具体的代码示例和步骤说明,本文旨在为初学者提供清晰的指导,确保他们在开发过程中能够顺利集成返回按钮,提升用户体验。 ... [详细]
  • 微信支付授权目录配置详解及操作步骤
    在使用微信支付时,若通过WeixinJSBridge.invoke方法调用支付功能,可能会遇到“当前页面URL未注册”的错误提示,导致get_brand_wcpay_request:fail调用微信JSAPI支付失败。为解决这一问题,需要正确配置微信支付授权目录,确保支付页面的URL已成功注册。本文将详细介绍微信支付授权目录的配置步骤和注意事项,帮助开发者顺利完成支付功能的集成与调试。 ... [详细]
  • Spring框架入门指南:专为新手打造的详细学习笔记
    Spring框架是Java Web开发中广泛应用的轻量级应用框架,以其卓越的功能和出色的性能赢得了广大开发者的青睐。本文为初学者提供了详尽的学习指南,涵盖基础概念、核心组件及实际应用案例,帮助新手快速掌握Spring框架的核心技术与实践技巧。 ... [详细]
  • C#编程指南:实现列表与WPF数据网格的高效绑定方法 ... [详细]
  • 深入解析Tomcat:开发者的实用指南
    深入解析Tomcat:开发者的实用指南 ... [详细]
  • Go语言实现Redis客户端与服务器的交互机制深入解析
    在前文对Godis v1.0版本的基础功能进行了详细介绍后,本文将重点探讨如何实现客户端与服务器之间的交互机制。通过具体代码实现,使客户端与服务器能够顺利通信,赋予项目实际运行的能力。本文将详细解析Go语言在实现这一过程中的关键技术和实现细节,帮助读者深入了解Redis客户端与服务器的交互原理。 ... [详细]
  • 在使用关系型数据库时,通常需要通过用户名和密码进行身份验证才能访问数据。然而,MongoDB默认情况下并不强制要求这种身份验证机制,使得用户无需凭据即可访问并执行各种操作。虽然这一设计简化了初学者的上手过程,但也带来了显著的安全风险。为了提升MongoDB的连接安全性,本文将探讨多种策略与实践,包括启用身份验证、配置网络访问控制、加密通信以及定期审计安全设置,以确保数据库的安全性和数据的完整性。 ... [详细]
  • 本文深入探讨了NDK与JNI技术在实际项目中的应用及其学习路径。通过分析工程目录结构和关键代码示例,详细介绍了如何在Android开发中高效利用NDK和JNI,实现高性能计算和跨平台功能。同时,文章还提供了从基础概念到高级实践的系统学习指南,帮助开发者快速掌握这些关键技术。 ... [详细]
author-avatar
旧眸M_557
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有