zoukankan      html  css  js  c++  java
  • 20145228《网络对抗技术》Web安全基础实践

    实验内容

    理解常用网络攻击技术的基本原理。Webgoat实践下相关实验。

    基础问题回答

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

    把SQL命令插入到网页请求表单中来欺骗服务器;限制输入sql语句的关键词

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

    利用HTML以及用户端脚本语言注入攻击来获取cookie;过滤<script>等XSS攻击可能涉及到的字符

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

    攻击者伪装成用户,以用户的名义发送请求;利用随机验证码

    实验过程

    打开WebGoat:java -jar webgoat-container-7.0.1-war-exec.jar 等待一会就让它待在后台运行

    然后在浏览器输入localhost:8080/WebGoat进入

    SQL字符串注入(String SQL Injection)

    输入永真式'or 1='1,得到了全部的信用卡号

    数字型SQL注入(Numeric SQL Injection)

    此题无法在前端注入,需要利用BurpSuite

    ·设置代理“Proxy”的“Options”选项

    ·添加一个新的端口8888,点击add

    ·设置浏览器的代理 如图

    ·然后回到题目,GO,再到burpsuite,出现了捕获到的数据:

    ·然后点击send to repeater ,修改station值从为101 为 101 or 1=1,点击GO,

    成功

    命令注入(Command Injection)

    ·按上一个题目操作来,捕获到数据、

    ·send to Repeater,更改URL处为AccessControlMatrix.help"&&ifconfig"

    储存型XSS(Stored XSS Attacks)

    使用户访问时载入攻击者所期望的内容,直接输入<script>alert("you are a shabi.Had this been a real attack...hehe");</script>

    反射型XSS(Reflected XSS Attacks)

    欺骗用户自己去点击链接才能触发XSS代码,也就是说它的代码是不存在服务器中的,所以存储型XSS攻击危害更大。

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

    创建一个form,让用户在我们创建的form中填写用户名和密码,再添加一段JavaScript代码,读取用户输入的用户名和密码

    Cross Site Request Forgery(CSRF)

    ·利用URL诱使其他用户点击,来触发CSRF攻击,我们可以用图片的形式将URL放进Message框,这时的URL对其他用户是不可见的,用户一旦点击图片,就会触发一个CSRF事件。

    ·输入<img src=' attack?Screen=网站的scr &menu=网站的menu &transferFunds=转钱数额 >

    盲数字注入(Blind Numeric SQL Injection)

    ·尝试输入默认的101,发现是有效数字

    ·然后确定范围101 AND ((SELECT pin FROM pins WHERE cc_number='1111222233334444') > 100 );

    若有效,说明值大于100

    101 AND ((SELECT pin FROM pins WHERE cc_number='1111222233334444') > 10000 );
    若无效,说明值小于10000

    然后按此方法确定

    最后为2364

    log Spoofing

    ·要求是欺骗登录成功

    ·所以利用回车%0d,换行符%0a

    ·输入5228%0d%0aLogin Succeeded便可以假装进入

    String SQL Injection

    ·刚开始输入' or 1 = 1 --,这样是不行的,密码框被设置只能输入8位

    ·然后在页面点右键Inspect Element,将长度改为16,格式改为text便于我们查看自己的输入

    ·再次输入即可成功

    Database Backdoors

    ·输入' or 1 = 1 --

    ·后面要求使用该SQL语句实现在myBackDoor表中添加新用户就在用户表里将新用户的邮箱改为题目固定的邮箱。

    ·然后加上101 or 1=1;CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='john@hackme.com'WHERE userid = NEW.userid;

    实验收获

    这次实验收获很多,学到了SQL、XSS、CSRF攻击的思路以及原理、方法,对网络攻击的方式更加多样化,理解了这些之后对我们如何防御这些攻击有了有较大帮助

  • 相关阅读:
    【二分匹配】【匈牙利算法即由增广路求最大匹配模板】
    【字符串入门专题1】【hdu4763】【未ac题】【扩展kmp exkmp】
    【字符串入门专题1】hdu3613 【一个悲伤的exkmp】
    【如何用XAMPP搭建Wordpress建站环境】
    面向过程要素
    当前阶段--可确定--完善版--学习结构--2016.09.10
    什么时候用工厂模式-----转载
    《EffectiveJava中文版》
    《ARM LINUX内核源码解析》
    《深入分析javaweb技术内幕》
  • 原文地址:https://www.cnblogs.com/J000/p/6872634.html
Copyright © 2011-2022 走看看