201453331魏澍琛web安全基础实践

一.实验过程

1、webgoat开启

2、Injection Flaws练习

Command Injection

原网页中没有注入的地方,那就用burpsuite(设置的相关步骤别人的博客写的很详细,不累述了),分析第一个包看他的数据提交的位置,找到后进行命令的注入,成功。 我注入的命令是AccessControlMatrix.help"&&ifconfig",执行了ifconfig命令,鉴于这个可以证明是本人操作,就把他截了一张图:

Numeric SQL Injection

和Command Injection步骤几乎一模一样,最后把我们修改station值从为101 为( 101 or 1 = 1),我们知道(x or 1),不管前面x的值是什么他的结果都是真,更改后成功

Log Spoofing

输入的用户名会被追加到日志文件中,所以我们可以使用障眼法来使用户名为“admin”的用户在日志中显示“成功登录”,在User Name文本框中输入wsc%0d%0aLogin Succeeded for username: admin,其中%0d是回车,%0a是换行符,成功。

String SQL Injection

永真式(x or 1)=1,再加上两个分号来闭合前后的分号作为输入,就成功了。

LAB:SQL Injection(Stage 1:String SQL Injection)

用上一个的输入进行输入发现失败了!按F12看下网页的源代码,找到密码输入框,会发现他对长度进行了限制(maxlenth=8),把他改成50,就成功了。

LAB:SQL Injection(Stage 3:Numeric SQL Injection)

先用上面的方法进行登陆,查看源代码,发现这个地方是以员工ID作为索引传递参数的,我们要达到通过Larry来浏览老板账户信息的目的,一般来说老板的工资都应该是最高的,所以把其中的value值改为“101 or 1=1 order by salary desc --”,这样老板的信息就会被排到第一个,然后就可以查看老板的信息。

Blind Numeric SQL Injection

先要发现返回的信息中只有两种:有效或无效,接着缩小范围,ok再接着在确定一个较小的范围里打开BurpSuite,设置好代理后,抓个包然后进行暴力破解(设置部分根据别人的博客完成),最终根据报文长度的区别找到该值。

3、Cross-Site Scripting(XSS)练习

Stored XSS Attacks

title随便输,message输入一段代码

Reflected XSS Attacks

输入相应代码,这个和上一个的区别主要在与上一个的是存在服务器中的,而这个不是。

Cross Site Request Forgery(CSRF)

设定一个URL,别的人一点,就触发CSRF攻击,可以把URL放到message框中;提交后,下面会有一条记录,你一点这个记录,就被攻击了。

二.实验后回答问题

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

    首先sql注入呢就是一种对数据库进行攻击的方式,一个编网页的程序员比较菜,那恶意用户就可以利用他编写代码时没有考虑到用户输入数据的合法性,使程序存在安全隐患。恶意用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL注入。
进行防御,首先就是这次试验中涉及到的设定字符串的长度,不过事实上证明他没有什么卵用;采用采用字符串过滤,过滤掉一些sql注入的的关键字;除此之外,可以对在数据库中对密码进行加密,验证登陆的时候先将 密码进行加密再与数据库中加密的密码进行对比,若此时一致则基本是安全的。

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

    就是跨站脚本攻击,你将恶意代码注入到网页上,那么其他用户再看这个网页也就会受影响。这种攻击主要是获得目标网站的cookie,ok那什么是cookie?cookie就是存于本地用户的数据,某些网站为了辨别用户身份、进行session跟踪;ok那么获得了这些信息之后,就可以在任意能接进互联网的pc登陆该网站,并以其他人的生份登陆,做一些破坏。
进行防御,我看懂了别人的博客,感觉挺有道理的:第一就是当恶意代码值被作为某一标签的内容显示时,在不需要html输入的地方对html标签及一些特殊字符做过滤,这样就相当于这些字符没有用,因为他不被执行,那不执行不就是防御住了;第二就是当恶意代码被作为某一标签的属性显示时,通过用将属性截断来开辟新的属性或恶意方法:属性本身存在的单引号和双引号都需要进行转码;对用户输入的html 标签及标签属性做白名单过滤,也可以对一些存在漏洞的标签和属性进行专门过滤。意思其实很简单,就是说原本的属性被转码了,用户新加的属性又会被过滤,这也是一种防御的方法。

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

    就是跨站请求伪造,首先要注意,他和XSS攻击截然不同!看名字就知道,他是通过伪装来自受信任用户的请求来利用受信任的网站,而XSS可以说是一种利用站点内的信任用户来进行攻击。OK有了伪造这个概念,就可以看懂下面这张图:
这个图中有一点很关键,那就是C(有A的cookie)要在没有登出A的情况下登入B 进行防御,看了一些别人的博客并查看了一些资料:第一就是Cookie Hashing(所有表单都包含同一个伪随机值),简单的说就是攻击者不能获得第三方的Cookie,所以表单中的数据也就构造失败了:在表单里增加Hash值,以认证这确实是用户发送的请求。然后在服务器端进行Hash值验证;还有一种就是用验证码的方式保护:每次用户提交都需要用户在表单中填写一个图片上的随机字符串,这个比较常见,终于知道那些网站的验证码是用来干什么的了。反正总而言之,就是要验证这个用户的身份。

三.实验总结与体会

    前两种攻击方法上次实验已经涉及到了,这次就是更加深入的进行学习,明白了这些攻击方法具体是怎么回事:为什么要以这样的格式进行输入,攻击的目标分别是什么,每种攻击的区别又是什么,实验过程还是很有意思的;还有就是要加强英语水平啊,每个题目看起来有点费劲啊;最后就是做这次实验总用一种偷鸡摸狗背着别人干坏事的感觉,挺奇怪的... PS:每次代理完记着调回来,不然火狐就连不上网。

exp9《网络对抗》web安全基础实践201453331魏澍琛的更多相关文章

  1. 20145334赵文豪网络对抗Web安全基础实践

    1.SQL注入攻击原理,如何防御? SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意SQL命令的目的. 对于SQL注入攻击的防范,我觉 ...

  2. 2018-2019 20165221 网络对抗 Exp5 MSF基础

    2018-2019 20165221 网络对抗 Exp5 MSF基础 实践内容: 重点掌握metassploit的基本应用方式,重点常用的三种攻击方式的思路.具体需要完成: 一个主动攻击实践,如ms0 ...

  3. 20145306 网路攻防 web安全基础实践

    20145306 网络攻防 web安全基础实践 实验内容 使用webgoat进行XSS攻击.CSRF攻击.SQL注入 XSS攻击:Stored XSS Attacks.Reflected XSS At ...

  4. 20145236《网络对抗》Exp9 web安全基础实践

    20145236<网络对抗>Exp9 web安全基础实践 一.基础问题回答: SQL注入攻击原理,如何防御 SQL Injection:就是通过把SQL命令插入到Web表单递交或输入域名或 ...

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

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

  6. 20145208 蔡野 《网络对抗》Exp9 web安全基础实践

    20145208 蔡野 <网络对抗>Exp9 web安全基础实践 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 实验后回答问题 (1)SQL注入攻击原理,如何 ...

  7. 20155202《网络对抗》Exp9 web安全基础实践

    20155202<网络对抗>Exp9 web安全基础实践 实验前回答问题 (1)SQL注入攻击原理,如何防御 SQL注入产生的原因,和栈溢出.XSS等很多其他的攻击方法类似,就是未经检查或 ...

  8. 20155204《网络对抗》Exp9 Web安全基础实践

    20155204<网络对抗>Exp9 Web安全基础实践 一.基础问题回答 SQL注入攻击原理,如何防御? 原理: SQL注入即是指web应用程序对用户输入数据的合法性没有判断,攻击者可以 ...

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

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

随机推荐

  1. Oracle体系结构之数据文件管理

    数据文件分2个方向管理: 物理结构和逻辑结构. 数据库的存储层次结构图: ............. 逻辑结构:                                  物理结构: .... ...

  2. 【源码】rm zip 删除文件夹中大量的小文件 百万 扫描文件时间

    rm  删除文件夹中大量的小文件 百万 迟迟未删除 在扫描文件? rm删除命令源码分析 - ty_laurel的博客 - CSDN博客 https://blog.csdn.net/ty_laurel/ ...

  3. JMeter(十四)-自动生成测试报告

    很多朋友都在问jmeter如何生成测试报告,这里随便说两句. 环境要求 1:jmeter3.0版本之后开始支持动态生成测试报表 2:jdk版本1.7以上 3:需要jmx脚本文件 基本操作 1:在你的脚 ...

  4. 【xargs -i】复制文件夹中前100个文件

    复制前一万个文件到 tmp 下 |xargs -i cp {} /tmp 复制后一万个文件到 tmp 下 |xargs -i cp {} /tmp 查看linux下文件夹文件数目 ls -l |gre ...

  5. Storyboard Reference

    在某些情况下.你开发的应用可能包括有各种各样的复杂界面,假设你使用Storyboard来管理这些界面,通常你会将这些界面依照对应的逻辑分成很多子模块,放在不同的storyboard里,比方注冊相关的放 ...

  6. JS闭包中的循环绑定处理程序

    前几天工作中写前端js代码时,遇到了遍历元素给它添加单击事件.就是这个问题让我整整调了一个下午.最后还是下班回家,上网查资料才知道怎么解决的. (PS:之前也在<jQuery基础教程>第四 ...

  7. display:table和display:table-cell结合使用

    .GoodList{ display :table; height :54px; width :56px; line-height: 14px                 padding: 0 1 ...

  8. 3.对神经网络训练中Epoch的理解

    代表的是迭代的次数,如果过少会欠拟合,反之过多会过拟合 EPOCHS 当一个完整的数据集通过了神经网络一次并且返回了一次,这个过程称为一个 epoch.   然而,当一个 epoch 对于计算机而言太 ...

  9. 教你在Android手机上使用全局代理

    前言:在Android上使用系统自带的代理,限制灰常大,仅支持系统自带的浏览器.这样像QQ.飞信.微博等这些单独的App都不能使用系统的代理.如何让所有软件都能正常代理呢?ProxyDroid这个软件 ...

  10. springmvc接收参数

    springmvc执行流程 搭建ssm框架:http://www.cnblogs.com/liyafei/p/7955413.html 1:从表单中接收 普通请求参数 结构目录 role.html 1 ...