Web安全基础实践

实践过程记录

实验准备:

  • 输入命令java -jar webgoat-container-7.0.1-war-exec.jar,一直等待等待直到出现

  • 在浏览器中打开localhost:8080/WebGoat

SQL练习

1.String SQL Injection

  • 题目的意思是输入用户名查询表单,现在想显示所有用户名信用卡号。
  • 我们只需要构造一个永真式,将WHERE部分的结果忽略,只执行后面的1,即输入'or '1'='1,第一个分号用来闭合lastname的第一该分号,第二个闭合后面的分号,这样就将一条语句拆成了两条语句。

2.Command Injection

  • 题目为命令行注入,猜测可能是要实现命令行的功能,但是只有一个选择下拉菜单,所以首先想到查看其网页代码,定位到选择框

  • 右键可以看到有编辑html的选项。添加netstat -a语句(查看开放所有端口),但是看到前后均有双引号,所以添加两个闭合他们,&&连接两条语句

3.Numeric SQL Injection

  • 数字型SQL注入,通过下拉菜单查看天气注入,要求直接查看所有的天气。和上述实验类似,查看他的网页代码,点开编辑网页,可以发现与上一题不同,这里没有‘’所以我们只需在101后面加上or 1=1即可。

4.Log Spoofing

  • 日志欺骗,你的目标是是用户名为admin的用户在日志中显示成功登陆。明确①不需要登陆成功②实际上就是输入一个用户名叫登陆成功:admin③在ASCII码中回车换行表示为%0a%0d

5.String SQL Injection

  • 无密码登陆,发现他输入password的地方做了限制只能八位,所以打开代码,将长度改为20,格式类型改为文本框。再输入之前的` or1=1` 记得看清题目,要选择老板为Neville)

6.Database Backdoors

  • 数据库后门,使用SQL注入修改员工工资
  • 首先构造永真式or 1=1 ,在SQL中修改信息使用update语句,即updata employee set salary=8888888

XSS(Cross-Site Scripting)

7.Phishing with XSS

  • 创建表单,引导访问者输入用户名密码,并将表单提交到指定网页。

8.Stored XSS Attacks

  • 存储型XSS攻击,要写入一个网页或弹窗,随便试了一个title 和message发现均有输出,所以可以在任意的文本框中写入一个弹窗代码<SCRIPT>alert('Hi,5224!');</SCRIPT>

9.Reflected XSS Attacks

  • 反射型XSS攻击,要求得到脚本访问信用卡表单字段;
    示例代码如下:
    ");

    10.CSRF Prompt By-pass

    • 跨站请求伪造。
      <img src='attack?Screen=278&menu=900&transferFunds=5000'>

    实验后回答问题

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

    原理:

    • 对用户的输入继续严格的控制,避免出现构造注销符号-- ,或者构造永真式的机会。
    • 是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

      防御

    • 不信任任何人,将全部的数据进行验证(在服务器端进行验证)
    • 避免使用动态的SQL。例如预备陈述和参数化的查群等。
    • 使用web应用防护墙,即使更新漏洞打补丁。

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

    原理:

    • 攻击者向有XSS漏洞的网站中输入(传入)恶意的HTML代码,当其它用户浏览该网站时,这段HTML代码会自动执行,从而达到攻击的目的。,XSS漏洞分为两种,一种是DOM Based XSS漏洞,另一种是Stored XSS漏洞。前者是基于网页DOM结构的攻击,后者攻击代码已经存储到服务器上或数据库中,用来收集cookie信息的一种方式。

    防御

    • 与SQL攻击防御方法大致相同,都是对用户输入加以限制和验证。
    • 实现Session标记(session tokens)、CAPTCHA系统或者HTTP引用头检查,以防功能被第三方网站所执行。

    (3)CSRF攻击原理,如何防御

    原理:

    • CSRF攻击即跨站伪造攻击,顾名思义,就是攻击者向目标网站注入一个恶意的URL跨站地址,当用户点击了该URL,就可以进行一些用户本不希望的事情。

    防御

    • 通过 referer、token 或者 验证码 来检测用户提交。
    • 尽量不要在页面的链接中暴露用户隐私信息。
    • 对于用户修改删除等操作最好都使用post 操作 。
    • 避免全站通用的cookie,严格设置cookie的域。

    实验总结与体会

    • 做攻击的时候还是很有趣,只有亲自去尝试的时候才明白其真正的原理。看全篇英文的题目的结果就是我完全不知道在讲啥,,,,,,连针对谁的攻击都看不见,,,,六级可能过了个假的。还有就是有些时候可能因为网速的原因,输入了正确答案还是不能congratulation,很奔溃。

    20145238-荆玉茗 《网络对抗技术》-Web安全基础实践的更多相关文章

    1. 20145308 《网络对抗》Web安全基础实践 学习总结

      20145308 <网络对抗> Web安全基础实践 学习总结 实验内容 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 基础问题回答 (1)SQL注入攻击原理, ...

    2. 20145326蔡馨熤《网络对抗》—— Web安全基础实践

      20145326蔡馨熤<网络对抗>—— Web安全基础实践 1.实验后回答问题 (1)SQL注入攻击原理,如何防御. 原理: SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程 ...

    3. 20145216史婧瑶《网络对抗》Web安全基础实践

      20145216史婧瑶<网络对抗>Web安全基础实践 实验问题回答 (1)SQL注入攻击原理,如何防御 攻击原理: SQL注入攻击指的是通过构建特殊的输入作为参数传入web应用程序,而这些 ...

    4. 20145227鄢曼君《网络对抗》Web安全基础实践

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

    5. 20145217《网络对抗》 Web安全基础实践

      20145217<网络对抗> Web安全基础实践 一.实践任务 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 二.实验后回答问题 (1)SQL注入攻击原理,如 ...

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

      20155326<网络对抗>Web安全基础实践 实验后回答的问题 SQL注入攻击原理,如何防御? 原理:SQL注入攻击指的是在Web应用对后台数据库查询语句处理存在的安全漏洞,通过构建特殊 ...

    7. 20155206《网络对抗》Web安全基础实践

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

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

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

    9. 20155305《网络对抗》Web安全基础实践

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

    10. 20155307《网络对抗》Web安全基础实践

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

    随机推荐

    1. 图像的点运算----底层代码与Halcon库函数

      最基本的图像分析工具----灰度直方图.使用直方图辅助,可以实现4大灰度变换,包括线性灰度变换(灰度拉伸).灰度对数变换.灰度伽马变换.灰度分段线性变换:使用直方图修正技术,可以实现2大变换,包括直方 ...

    2. 前端(一):html标签

      HTML(Hypertext Markup Language)超文本标记语言,它负责页面的结构.超文本指的是超链接,使用超链接可以从一个页面跳转到另一个页面. HTML的发展:1993年6月发布第一个 ...

    3. 给tomcat7w.exe改名字

      在平常使用tomcat的过程中,经常会在自己的电脑上安装两个tomcat,而且使用tomcat的tomcat7w.exe界面比较方便,即 但是两个tomcat的名字一样,也只能启动一个tomcat. ...

    4. wamp配置步骤

      对于初做PHP网站的朋友来说,第一步肯定是希望在自己电脑是搭建PHP环境,省去空间和上传的麻烦!但搭建环境也不是件容易的事情,特别是对于新手同学来说!因此在这里跟大家介绍我作为一名新手在使用的方便好用 ...

    5. browserslist 目标浏览器配置表

      为什么需要: 根据提供的目标浏览器的环境来,智能添加css前缀,js的polyfill垫片,来兼容旧版本浏览器,而不是一股脑的添加.避免不必要的兼容代码,以提高代码的编译质量. 共享使用browser ...

    6. laravel验证码

      登录验证码 1.首先,进入https://github.com/mewebstudio/captcha,根据captcha上的使用方法一步步来实现验证码的安装,因为是laravel5.7,所以选择了c ...

    7. 提问的智慧 How To Ask Questions The Smart Way

      提问的智慧 How To Ask Questions The Smart Way Copyright © 2001,2006,2014 Eric S. Raymond, Rick Moen 本指南英文 ...

    8. 什么是shell? bash和shell有什么关系?

      什么是Shell?      shell是你(用户)和Linux(或者更准确的说,是你和Linux内核)之间的接口程序.你在提示符下输入的每个命令都由shell先解释然后传给Linux内核.      ...

    9. mobile webiste 中的css的font-size em及line-height等换算

      在mobile web设计 中,我们常常需要使用em这个字体大小的单位.em到底是多少呢? em到底应该设置为多少个em呢?通常换算成方法是1em=target fontsize we want/fo ...

    10. leetcode-valid number ZZ

      http://blog.csdn.net/kenden23/article/details/18696083 本题是十分麻烦的题目,情况是非常多,网上也很多方法,其中最有效,优雅的方法是有限状态自动机 ...