本实践的目标理解常用网络攻击技术的基本原理。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. July 03rd 2017 Week 27th Monday

    Even if you are on the right track, you will get run over if you just sit there. 即使你处于正确的轨道上,但如果你只是坐 ...

  2. February 16 2017 Week 7 Thursday

    Other men live to eat, while I eat to live. 很多人为食而生存,而我为生存而食. Just the same, either you eat to live ...

  3. [EffectiveC++]item37:绝不重新定义继承而来的缺省参数值

    绝不重新定义继承而来的缺省参数值 静态类型 动态类型

  4. oracle踩过的坑

    #默认库配置 url: jdbc:oracle:thin:@ip:1521:smis(SID名) driver: oracle.jdbc.driver.OracleDriver username: x ...

  5. BZOJ1996:[HNOI2010]CHORUS 合唱队(区间DP)

    Description Input Output Sample Input 4 1701 1702 1703 1704 Sample Output 8 HINT Solution 辣鸡guide真难用 ...

  6. 【[POI2006]OKR-Periods of Words】

    很妙的一道题 感觉又加深了对\(KMP\)还有\(next\)数组的理解 先来看看这个鬼畜的题意,大致就是给你一个字符串,对于这个字符串的每一个前缀,要去找到这个前缀的一个最长的前缀,使得前缀成为这个 ...

  7. ThinkPHP中前台输出变量

    1.   foreach <foreach name="list" item="vo" > {$key}|{$vo.id}:{$vo.name} & ...

  8. php auto_prepend_file和auto_append_file的妙用

    这是一个鲜为人知的设置! auto_prepend_file 和 auto_append_file 是在php.ini中进行配置的2个参数,auto_prepend_file 表示在php程序加载第一 ...

  9. Knowledge Point 20180303 我们为什么要配置环境变量

    1.1为什么要配置环境变量 在学习JAVA的过程中,涉及到多个环境变量(environment variable)的概念,如PATH.正确地配置这些环境变量,是能够顺利学习.开发的前提.而经常出现的问 ...

  10. Cannot set HTTP gem source: “source https://rubygems.org not present in cache”

    My ruby version in Windows 10: > ruby -v ruby 2.3.1p112 (2016-04-26 revision 54768) [i386-mingw32 ...