20155234 Exp9 Web安全基础

基础问答

  • SQL注入攻击原理,如何防御?
    SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意SQL命令的目的。
    对于SQL注入攻击的防范,我觉得主要还是应该从代码上入手:
    采用预编译语句集PreparedStatement,它内置了处理SQL注入的能力,只要使用它的setXXX方法传值即可。它的原理就是sql注入只对sql语句的准备(编译)过程有破坏作用,而PreparedStatement已经准备好了,执行阶段只是把输入串作为数据处理,而不再对sql语句进行解析准备,因此也就避免了sql注入问题;使用正则表达式过滤传入的参数,对一些包含sql注入的关键字进行过滤;采用字符串过滤的方法;jsp中调用该函数检查是否包含非法字符,防止SQL从URL注入。
  • XSS攻击的原理,如何防御?
    XSS是代码注入的一种,它允许恶意用户将代码注入到网页上,并能够被浏览器成功的执行,其他用户在观看网页时就会受到影响。这类攻击通常包含了HTML以及用户端脚本语言。XSS攻击的主要目的是,想办法获取目标攻击网站的cookie,因为有了cookie相当于有了seesion,有了这些信息就可以在任意能接进互联网的pc登陆该网站,并以其他人的身份登陆,做一些破坏。XSS的防御可以从以下两方面来进行:一种方法是在表单提交或者url参数传递前,对需要的参数进行过滤;检查用户输入的内容中是否有非法内容,如尖括号、引号等,严格控制输出。
  • CSRF攻击原理,如何防御?
    我们知道XSS是跨站脚本攻击,就是在用户的浏览器中执行攻击者的脚本,来获得其cookie等信息。而CSRF是借用用户的身份,向web server发送请求,因为该请求不是用户本意,所以称为“跨站请求伪造”。
    对于CSRF的防御也可以从以下几个方面入手:通过referer、token或者验证码来检测用户提交;尽量不要在页面的链接中暴露用户隐私信息,对于用户修改删除等操作最好都使用post操作;避免全站通用的cookie,严格设置cookie的域。

    实践过程

    搭建实验平台WebGoat
    在终端输入java -jar webgoat-container-7.0.1-war-exec.jar打开WebGoat服务。

    由于WebGoat所占用的是8088端口,所以我们可以在浏览器上输入localhost:8080/WebGoat进入WebGoat实验平台。

SQL注入攻击

1.Command Injection
首先选择实验Command Injection

在所请求的页面源代码中查找BackDoor,并在Backdoor.help后面添加"& netstat -an & ifconfig"

回到主页面,在下拉菜单中选择刚刚添加的Backdoor.help"& netstat -an & ifconfig,点击View,提示完成实验,并查看结果,出现了网络端口使用情况和IP地址。


2.Numeric SQL Injection
在菜单栏中选择Numeric SQL Injection,查看hints,意思是从选择框中获取输入,并将其插入到预先形成的SQL命令的末尾。

根据上一次实验我们可以构造一个永真式,即1=1,再根据提示SELECT * FROM weather_data WHERE station = ?,可以知道我们只要把1=1添加到网页源代码中的station对应地区的部分在查询对应地区的天气,即可得到所有地区的天气信息



3.Log Spoofing
在菜单栏中选择Log Spoofing,查看hints,意思是试图通过使用一条语句来骗过人的眼睛,即通过注入恶意字符串,按照规则伪造出一条日志。

由于用户名后面的信息会出现在与用户名相同的一行,所以可以注入回车%0d和换行符%0a,在User Name输入5234%0d%0aLogin Succeeded for username: admin,这样就可以在日志中留下Login Succeeded for username: admin这样的假的登陆成功的日志。

4.String SQL Injection
使用字符串SQL注入来绕过身份验证,在不用输入正确密码的情况下登陆Neville账户。

这个实验与上面天气的实验类似,用户名我们选择Neville *****,密码我们输入' or 1=1 --



执行SQL注入以绕过授权。通过一个普通员工Larry的账户,浏览其bossNeville的账户信息。
进入后点击ViewProfil按钮,可以看到Larry自己的信息,想要看到老板的信息还是要去修改网页源代码。

搜索ViewProfile,找到大概位置,然后根据Larry定位到具体位置,尝试之前恒真式的修改方法,然后根据薪水降序排列让boss的信息排到第一个

修改后可以成功的看到老板的信息了

5.String SQL Injection
在表格的末尾进行SQL注入攻击

由于字符串是由'包裹起来的在last name出输入' OR '1'='1,因为1=1为恒真式,所以所有的用户信息都会被输出。

CSRF攻击

6.Cross Site Request Forgery (CSRF)
制作一个URL来诱惑其他用户点击,在这里我们以图片的的形式将URL放进Message框,这时的URL对其他用户是不可见的,用户一旦点击图片,就会触发一个CSRF事件。
输入其中的Screen和menu参数要根据网页后边的数值填写

7.CSRF Prompt By-Pass
与上一个任务差不多,多了一个确认转账的任务,依旧是attack?Screen=XXX&menu=YYY&transferFunds=ZZZ这种语法,Src值以及menu值同样在右侧确定,将语句代码添加到message中,提交,同样点击留言,转账并且确认

XSS攻击

8.Phishing with XSS
跨站脚本钓鱼攻击。要求是将html制作一个请求页面,添加javascript来实际收集信息。
将信息发送到http://localhost:8080/webgoat /catcher?PROPERTY=yes…

需要一个符合要求的XSS攻击代码插入到搜索字段
钓鱼网站构建成功后就可以窃取输入账号和密码了

9.Stored XSS Attacks
储存型XSS攻击,我们可以插入一个HTML标签在我们的留言板中,因为留言板可以输入任何信息,所以可以利用用户A进行恶意留言之后用户B点进来自动显示用户A的留言。

输入一条HTML语句

10.Reflected XSS Attacks
程序用动态页面向用户显示错误消息,该页面会使用一个包含消息文本的参数,并在响应中将这个文本返回给用户。因为它允许他们从应用程序中调用一个定制的错误页面通过邮件或者URL路径把它放到另外一个网页上,而不需要对错误页面中的消息分别进行硬编码。提示信息让我们输入

在Enter your three digit access code中输入

实验体会

九次实验都做完了,虽然有很多都只是看着同学的博客一个个仿照着做的,但感觉还是学到了一些东西的,毕竟通过自己的实践将这些实验都做完了。

20155234《网路对抗》Exp9 WEB安全基础的更多相关文章

  1. 20155211 网络对抗 Exp9 Web安全基础实践

    20155211 网络对抗 Exp9 Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御? 原理:SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语 ...

  2. 20155202《网络对抗》Exp9 web安全基础实践

    20155202<网络对抗>Exp9 web安全基础实践 实验前回答问题 (1)SQL注入攻击原理,如何防御 SQL注入产生的原因,和栈溢出.XSS等很多其他的攻击方法类似,就是未经检查或 ...

  3. 20155208徐子涵《网络对抗》Exp9 Web安全基础

    20155208徐子涵<网络对抗>Exp9 Web安全基础 实验要求 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 实验过程 最后一次了,没有选择尝试免考项目 ...

  4. 2017-2018-2 20155314《网络对抗技术》Exp9 Web安全基础

    2017-2018-2 20155314<网络对抗技术>Exp9 Web安全基础 目录 实验目标 实验内容 实验环境 基础问题回答 预备知识 实验步骤--WebGoat实践 0x10 We ...

  5. 20145236《网络对抗》Exp9 web安全基础实践

    20145236<网络对抗>Exp9 web安全基础实践 一.基础问题回答: SQL注入攻击原理,如何防御 SQL Injection:就是通过把SQL命令插入到Web表单递交或输入域名或 ...

  6. 20145215《网络对抗》Exp9 Web安全基础实践

    20145215<网络对抗>Exp9 Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御? SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符 ...

  7. 20145208 蔡野 《网络对抗》Exp9 web安全基础实践

    20145208 蔡野 <网络对抗>Exp9 web安全基础实践 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 实验后回答问题 (1)SQL注入攻击原理,如何 ...

  8. 20155204《网络对抗》Exp9 Web安全基础实践

    20155204<网络对抗>Exp9 Web安全基础实践 一.基础问题回答 SQL注入攻击原理,如何防御? 原理: SQL注入即是指web应用程序对用户输入数据的合法性没有判断,攻击者可以 ...

  9. 20155207 《网络对抗》 Exp9 Web安全基础

    20155207 <网络对抗> Exp9 Web安全基础 实验内容 关于WebGoat Cross-Site Scripting(XSS)练习 Injection Flaws练习 CSRF ...

随机推荐

  1. Python 基于Python实现邮件发送

    基于Python实现邮件发送   by:授客 QQ:1033553122 测试环境: Python版本:Python 2.7   注:需要修改mimetypes.py文件(该文件可通过文章底部的网盘分 ...

  2. plsql 导出查询结果

      点击青色按钮即可 说明: 会将查询到的所有数据导出到指定文件,并不是只导出下面列表显示的几行数据: 也不用点击"获取最后页"那个按钮. 注意: 当你选择导出为excel文件时, ...

  3. UI第二组与数据库对接时遇到的问题记录

    此为组内某一位做UI的同学的随笔. 之前的app由于没有加入数据库,所以每次重新启动里面的东西都会回到初始状态,即不能保存内容.我们的数据库小组已经很棒地基本完成了数据库的工作,于是我就准备加入数据库 ...

  4. 获取本地机器的特征码IP MAC

    using System; using System.Collections.Generic; using System.Text; using System.Net; using System.Ma ...

  5. spring定时任务表达式

    @Scheduled 注解 cron表达式 一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素. 按顺序依次为 秒(0~59) 分钟(0~59) 小时(0~23) 天(月)(0~31,但是 ...

  6. c#WebApi使用form表单提交excel,实现批量写入数据库

    思路:用户点击下载模板按钮,获取到excel模板,然后向里面填写数据保存.from表单提交的时候选择保存好的excel,实现数据的批量导入过程 先把模板放在服务器的项目目录下面:如 模板我一般放在:F ...

  7. 转:winform 打包自动安装数据库

    vs2005 打包,并自动安装SQL数据库.创建部署项目    1.   在“文件”菜单上指向“添加项目”,然后选择“新建项目”.    2.   在“添加新项目”对话框中,选择“项目类型”窗格中的“ ...

  8. scp 利用 ssh 协议 复制文件

    有时候,我们使用 scp 命令可以解决我们很多问题: NAME scp — secure copy (remote file copy program) 使用举例:拷贝当前文件,到 系统 10.66. ...

  9. [IDEA_3] IDEA 配置 GitHub 并上传项目

    0. 说明 参考 Git & GitHub 的安装配置 IDEA 配置 GitHub 并上传项目 1. 安装配置 Git & GitHub 参照 Git & GitHub 的安 ...

  10. 【转】HTTP学习---TCP和UDP协议的区别与应用

    [原文]https://www.toutiao.com/i6592813624689951239/ 概述 ⊙TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层. 在网络层有IP协议.ICM ...