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

1.实验后回答问题

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

  • 感觉上次做的也是sql注入,就是故意的非法输入(输入的是一些指令)让他读进去,然后在里面执行。
  • 防御手段:一个是字符串检测,另一个是限制输入字符串的长度。
    (2)XSS攻击的原理,如何防御
  • xss攻击就是攻击网页使得其他用户查看网页时受到影响。
  • 防御手段:程序员应该防止下发界面显示html标签,把</>等符号转义
    (3)CSRF攻击原理,如何防御
  • 通过伪装来自受信任用户的请求来利用受信任的网站,即受害用户登录受信任网站后,在本地生成了COOKIE而又在不登出该网站的情况下,访问了危险网站,而此时访问的危险网站可能就已经写入了利用你的身份进行而恶意操作的代码
  • 防御手段:少登陆不知名网站,不长时间保存cookie
    实验指导:http://www.cnblogs.com/20145224kevs/p/6826084.html
    2.实验总结与体会
  • 感觉我所做的就是站在巨人的肩膀上稍微跳了一下,因为这次课题负责人是我舍友感觉他在自己做的时候还是很累的,然而我们做的时候是可以根据他找到的答案来直接将结果做出来,是比较快,而且轻松的,这可能也就是研究性学习和普通学习之间的区别。

3.实践过程记录
这次尝试一波文字描述

启动WebGoat

  • 在终端使用指令java -jar webgoat-container-7.0.1-war-exec.jar,等待其显示
    信息: Starting ProtocolHandler ["http-bio-8080"]
  • 打开浏览器,访问localhost:8080/WebGoat,登陆即可开始答题。

    Injection Flaws

  • Command Injection:命令注入,要求能够在目标主机上执行任意系统命令即可;
    1.首先我们需要确定进行注入的位置,网页中并没有文本框,只有一个下拉的选项栏,所以我们只能修改这个下拉栏的值。有两种方式可以修改,可以使用BurpSuite拦截再修改,也可以直接修改页面源代码;
    2.我这次试验并没有用到BurpSuite使用的是修改页面代码的方法
    3.使用组合键Shift+Ctrl+C查看页面源代码,鼠标单击下拉选项栏,这时候会自动的帮你定位到相应的代码段,找到其中一个option,右键鼠标Edit HTML,这时候就可写东西了。
    4.css应该是内嵌或者外嵌的框架,右键了以后发现并不能改,script里面可以在代码段里设置断点,html里面可以直接编辑。
    5.直接在option后加上"&&ifconfig"即可,然后回到网页,找到并且提交刚刚修改过的选项。ifconfig是看ip和网关,用别的也行
  • Numeric SQL Injection:数字型SQL注入,要求通过注入SQL字符串的方式查看所有的数据;
    1.同样是修改页面代码,先查看页面源代码。
    2.然后锁定到具体的代码,点击下拉栏。
    3.往里面加入代码,这里在Value后加上or 1 = 1 - -即可
  • Log Spoofing:日志欺骗,要求使用户名为“admin”的用户在日志中显示“成功登录”(实际上并没有成功);
    这个实验主要是为了欺骗人眼,由于页面会将输入的用户名返回,所以我们可以在用户名上动手脚,输入用户名%0d%0aLogin Succeeded for username: admin;
    其中%0a%0d是ASCII码的回车换行的意思
  • String SQL Injection:字符串注入,要求通过SQL注入将所有信用卡信息显示出来;
    有文本框的题相对来说都比较轻松,输入' or 1 = 1 --即可
  • LAB SQL Injection【SQL注入实验】:
    1.String SQL Injection:字符串型注入,要求使用SQL注入绕过认证,实现无密码登陆;
    先把长度限定改为15,把文本框格式改为text,在密码栏输入' or 1 = 1。
    2。Numeric SQL Injection:数字型注入,要求使用一个普通员工的账户,浏览其BOSS的账户信息;
    首先通过Larry的账户登陆(密码为larry),我们先试着把Value的值改为Boss的对应值修改为112 or 1= 1,这次成功了输出信息,但是还是Larry的信息,看了别人的博客发现应该是将最首位的信息输出。那么这次我们可以对信息进行排序让他排在首位。用社会工程学解释老板应该是工资最高的,所以为了把老板排到第一个SQL注入排序如下112 or 1=1 order by salary desc;

  • Database Backdoors:数据库后门,要求使用SQL注入修改员工工资;
    如果熟悉SQL语句的话可以指定,修改信息用update语句,具体注入语句为:101 or 1=1; update employee set salary=100000

  • Blind Numeric SQL Injection:数字型盲注入,要求找到pins表中cc_number字段值为1111222233334444的记录中pin字段的数值;
    感觉利用折半查找会比较快一点,但是我没有用,因为看别人的博客答案已经被确定为为2364,我试了一下,竟然2364是对的,那就说明每个人的答案都一样,这并不是随机的。

  • Blind String SQL Injection:字符串型盲注入,要求找到pins表中cc_number字段值为4321432143214321的记录中pin字段的数值。pin字段类型为varchar;
    这个题目我依旧是抄的答案只不过是猜ASCII的值罢了,答案是Jill;
    上面这两个题目如果要自己做的话会比较久,可能需要专门写个脚本不停的循环来试,不过计算机的优点也就在于速度快。

    Cross-Site Scripting (XSS)

  • Phishing with XSS:XSS钓鱼,要求创建一个表单,诱骗访问者输入用户名密码,并将表单提交到http://localhost:8080/WebGoat/capture/PROPERTY=yes&ADD_CREDENTIALS_HERE
    代码:


    This feature requires account login:






    Enter Username:

    Enter Password:



    上面那段代码竟然会直接在博客园以这种方式呈现,不过这样也好。
  • Stored XSS Attacks:存储型XSS攻击,要求在信件中写入一个网页或弹窗:
    具体代码应该是
  • Reflected XSS Attacks:反射型XSS攻击,要求得到脚本访问信用卡表单字段
    ");
  • Cross Site Repuest Forgery
    1.这个实践是利用cookie冒名登录,用代码伪造请求
    2.在message里面输入
  • CSRF Prompt By-Pass
    这个问题大家写的大概分为两种,一中是写两个iframe的另一种是蔡野同学的,这个攻击我并不是很懂而且通过评语来看写两个frame好像不太对,但我用两个frame确实能够做出来。

注释:这博客园有个大问题,应该算是个漏洞吧,我在博客院里面写web的代码他会直接识别(至少是直接识别一部分),我打算免考题往这个方向做。

20145202马超《网络对抗》Exp9*_* Web安全基础实践的更多相关文章

  1. 20155324《网络对抗技术》web安全基础实践

    20155324<网络对抗技术>web安全基础实践 实验内容 使用webgoat进行XSS攻击.CSRF攻击.SQL注入 实验问答 SQL注入攻击原理,如何防御 ①SQL注入攻击是攻击者在 ...

  2. 20145311王亦徐 《网络对抗技术》 Web安全基础实践

    2014531王亦徐 <网络对抗技术> Web安全基础实践 实验内容 利用WebGoat平台尝试了一些XSS.CSRF.SQL注入攻击 基础问题回答 1.SQL注入攻击原理,如何防御原理: ...

  3. 20145325张梓靖 《网络对抗技术》 Web安全基础实践

    20145325张梓靖 <网络对抗技术> Web安全基础实践 实验内容 使用webgoat进行XSS攻击.CSRF攻击.SQL注入 XSS攻击:Stored XSS Attacks.Ref ...

  4. 20155217《网络对抗》Exp09 Web安全基础实践

    20155217<网络对抗>Exp09 Web安全基础实践 实践内容 关于webgoat:询问了很多人在安装webgoat时出现了错误,安装失败,因此直接通过同学copy了老师的虚拟机进行 ...

  5. 20145302张薇 《网络对抗技术》 web安全基础实践

    20145302张薇 <网络对抗技术> web安全基础实践 实验问题回答 1.SQL注入攻击原理,如何防御 原理:攻击者把SQL命令插入到网页的各种查询字符串处,达到欺骗服务器执行恶意的S ...

  6. 20145321 《网络对抗技术》 Web安全基础实践

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

  7. 20145337《网络对抗技术》Web安全基础实践

    20145337<网络对抗技术>Web安全基础实践 一.实验后回答问题 1.SQL注入攻击原理,如何防御 SQL注入攻击的本质是利用SQL语法,针对应用程序开发过程中的漏洞,从一个数据库获 ...

  8. 20145214 《网络对抗技术》 Web安全基础实践

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

  9. 20145210姚思羽 《网络对抗技术》 Web安全基础实践

    20145210姚思羽 <网络对抗技术> Web安全基础实践 实验后回答问题 1.SQL注入攻击原理,如何防御 ·SQL攻击的原理很简单,就是在用户名输入框里输入SQL语句,来欺骗数据库服 ...

  10. 20145336 张子扬 《网络对抗技术》 web安全基础实践

    2014536 张子扬<网络攻防>Exp9 Web安全基础实践 实验准备 开启webgoat 1)开启webgoat,打开WebGoat: java -jar webgoat-contai ...

随机推荐

  1. Code First TPH、TPT、TPC与继承类

    一.Table Per Hierarchy (TPH,默认) 每个层次结构共用一个表,类的每一个属性都必须是可空的. 1.默认行为 只建立一个表,把基类和子类中的所有属性都映射为表中的列. 在这种处理 ...

  2. 基于SAP Kyma的订单编排增强介绍

    尽管有一万个舍不得,2018年还是无可挽回地离我们远去了. 唯有SAP成都研究院的同事和我去年在网络上留下的这些痕迹,能证明2018年我们曾经很认真地去度过每一天: SAP成都研究院2018年总共87 ...

  3. 笔记,记事软件(RedbookNote, lifeopraph)

    许多人重视记日记是因为它是一种以天为基础保存个人或商务信息的良好方式:持续跟踪每天的生活和思想上的点点滴滴,组织和巩固记忆.思考.商业交易.电子邮件.账单.未来计划.联系人列表,甚至是秘密信息.Lin ...

  4. Intellij IDEA 格式化代码

  5. Django测试

    创建一个测试 ## app/tests.py import datetime from django.utils import timezone from django.test import Tes ...

  6. 使用jsonp获取天气情况

    在这里使用的是百度天气: 整体代码如下: js: <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js ...

  7. MATLAB 中gcf、gca 以及gco 的区别

    MATLAB 中gcf.gca 以及gco 的区别gcf 返回当前Figure 对象的句柄值gca 返回当前axes 对象的句柄值gco 返回当前鼠标单击的句柄值,该对象可以是除root 对象外的任意 ...

  8. 算法 - 给出一个字符串str,输出包含两个字符串str的最短字符串,如str为abca时,输出则为abcabca

    今天碰到一个算法题觉得比较有意思,研究后自己实现了出来,代码比较简单,如发现什么问题请指正.思路和代码如下: 基本思路:从左开始取str的最大子字符串,判断子字符串是否为str的后缀,如果是则返回st ...

  9. 在Mac机器上给ITerm2配置lrzsz,便捷的传输文件到远程服务器上

    可直接参考文档:http://danqingdani.blog.163.com/blog/static/18609419520141201215750 需要使用到的github脚本:https://g ...

  10. 跨浏览器的事件对象EventUtil

    var EventUtil = function(){ /*--addHandler--*/ addHandler:function(element,type,handler){ if(element ...