本实践的目标理解常用网络攻击技术的基本原理。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. [EffectiveC++]item33:避免遮掩继承而来的名称。

    先看看: ZT C++ 重载.覆盖和隐藏的区别 http://www.cnblogs.com/jeanschen/p/3405987.html 隐藏是指派生类的函数屏蔽了与其同名的基类函数,规则如下: ...

  2. MSSQL注入常用SQL语句整理

    很多情况下使用工具对mssql注入并不完善,所以我们就需要手工注入,一下是本人收集的一些mssql的sql语句. 手工MSSQL注入常用SQL语句 and exists (select * from ...

  3. navicat远程连接mysql,2003 can't connect to mysql server on 10038

    转载地址:https://blog.csdn.net/f12105212/article/details/70768516 1:我们连接远程服务器的mysql,如果出现问题,很大问题会出在服务器的端口 ...

  4. git及github配置入门

    github是一个有海量开源代码库的网站,同时也是一个软件开发管理软件,作为软件来说它集成了git这个分布式的版本控制系统,可以上传.下载和管理自己的代码. 笔者刚接触不久,把认为入门应该知道的东西稍 ...

  5. 有gridview汇出word和excel

    private void Export(GridView _gv, string filetype, string FileName)    {        if (filetype == &quo ...

  6. 当前线程不在单线程单元中,因此无法实例化 ActiveX 控件

    “/”应用程序中的服务器错误. 当前线程不在单线程单元中,因此无法实例化 ActiveX 控件“c552ea94-6fbb-11d5-a9c1-00104bb6fc1c”. 说明: 执行当前 Web ...

  7. springboot项目pom添加依赖

    在dependency 后面  ALt+/  可以打开编辑窗口.

  8. 移动端meta标签的设置

    var phoneWidth = parseInt(window.screen.width); var phoneScale = phoneWidth / 640; var ua = navigato ...

  9. 【题解】洛谷P2827 [NOIP2016TG] 蚯蚓(优先队列)

    题目来源:洛谷P2827 思路 阅读理解题 一开始以为是裸的优先队列而已 但是发现维护一个切开并且其他的要分别加上一个值很不方便 而且如果直接用优先队列会TLE3到4个点 自测85分 所以我们需要发现 ...

  10. 【题解】洛谷P2704 [NOI2001] 炮兵阵地(状压DP)

    洛谷P2704:https://www.luogu.org/problemnew/show/P2704 思路 这道题一开始以为是什么基于状压的高端算法 没想到只是一道加了一行状态判断的状压DP而已 与 ...