20145304 Exp9 Web安全基础实践

实验后回答问题

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

SQL注入是将查询语句当做查询内容输入到查询的框中,以此来使服务器执行攻击者想让它执行的语句,而不是正常的应该执行的查询语句。

可在编写Web时进行输入语句合法性的判断,例如不允许出现SQL注入攻击中常出现的单引号或规定输入内容的类型等来判断输入是否合理,以此来防御攻击。

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

XSS是指将可以被浏览器执行的代码放入URL中,使其被执行。

可在编写Web时对输入语句进行合法性判断,例如不允许出现尖括号之类的判断条件。

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

CSRF是指用户登录信任网站时,也访问了危险网站,执行了危险网站中的一些恶意请求。

开wireshark捕包,看是否访问了恶意网站;设置web不长时间保存cookie;重要的网站使用专用的cookie等。

实验总结与体会

此次实验,掌握了SQL、XSS和CSRF攻击的同时,掌握了很多单词,还有了想去网站测试SQL注入的冲动,虽然能成功的概率很小。Web编程是一项很严谨的工作,需要注意的地方有很多,对输入的合法性要严格把控,不要盲目的执行用户输入,要先进行思考。

实践过程记录

Stored XSS Attacks

  • 存储式XSS攻击

  • 在进行攻击之前,先试了一下该任务的正常功能,输入标题和信息后,在Message List下多出来一个可点选的标题,点开后可以看到自己的发的帖子。

  • 在message或title中填写可在Web网页下可以执行的代码即可完成攻击,但效果不同,在title中填写的代码会在submit后立即执行且不会再list下产生新的东西,而在massage中填写,则需点击该message的title才会执行添加的代码,在list中留有痕迹。

  • 此次实验在massage中攻击成功后算通过。

Reflected XSS Attacks

  • 反弹式XSS攻击

  • 通过对题意的猜测,应该是利用服务器验证用户输入内容时对其进行攻击,提示可以将其发送到某一网站或发邮件,是受害者点击它。

  • 实现了较为简单的在输入3个验证数字的框中多增添一个编好的并不属于原网站所需输入项来进行攻击,为方便观察,还是输入一个文本框input=<script>alert("ha ha ha!");</script>

CSRF

  • 发送一个email给新团体,包含指向恶意请求的URL

  • 根据提示修改相应值,自动连接包含恶意请求的URL,像是钓鱼网站,在不知情的情况下登陆了了攻击者的URL。

  • 点击生成的邮件,攻击成功。

CSRF Prompt By-Pass

  • 该实验有两个要求,第一是包含恶意请求,第二是确认第一个要求是否攻击成功。

<iframe
src="attack?Screen=271&menu=900&transferFunds=5000">
</iframe>
<iframe
src="attack?Screen=271&menu=900&transferFunds=CONFIRM">
</iframe>

CSRF Token By-Pass

  • 按照提示填写了代码,但没有找到提示中的token将其附加上去,导致失败,待再研究,可能是理解错了。

Log Spllfing

  • 注入语句,使其显示登陆成功但其实并未登陆成功,即将登陆成功打印出来。
  • 使用回车换行,将语句打印出来

String SQL Injection

  • 通过SQL注入,将所有信息打印出来,而不只是需要查询的人。
  • 利用永真式和注释符来实现。

Numeric SQL Injection

  • 数字型SQL注入

  • 下拉表单的注入,用户无法自由的输入,但可截获发送出去的请求包,修改后,再发送到服务器。

  • 要求选择一个时打印出全部,可以使用永真式。

  • 尝试了一下在网页上直接修改其代码

Database Backdoors

  • 注入语句,修改数据库中的资料。

  • 第一步:修改101的salary值

  • 第二步:修改所有用户邮箱为固定邮箱。

Blind Numeric SQL Injection

  • 查看题目,发现只能查询输入的账户是否存在,然而,题目要求我们查询cc_number为1111222233334444的pins值。
  • 此时只能猜测数据库中的内容,利用已有信息与AND语句来让其判断是否为真,从而猜测到数据库中的内容。

Blind String SQL Injection

    • 猜测数据库中的字符串内容

20145304 Exp9 Web安全基础实践的更多相关文章

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

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

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

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

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

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

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

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

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

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

  6. 20155210 Exp9 Web安全基础实践

    Exp9 Web安全基础实践 实验过程 开启webgoat 输入java -jar webgoat-container-7.1-exec.jar,来运行webgoat 在浏览器输入localhost: ...

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

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

  8. 20155216 Exp9 Web安全基础实践

    Exp9 Web安全基础实践 基础问题回答 1.SQL注入攻击原理,如何防御? 1.对用户的输入进行校验,可以通过正则表达式,双"-"进行转换等. 2.不要使用动态拼装sql,可以 ...

  9. 20155220 Exp9 Web安全基础实践

    Exp9 Web安全基础实践 实验过程 开启webgoat 输入java -jar webgoat-container-7.1-exec.jar,来运行webgoat 在浏览器输入localhost: ...

随机推荐

  1. centos7 卸载和安装最新版本docker-ce,配置阿里云加速

    一.yum卸载.安装 1.卸载老版本的 docker 及其相关依赖 sudo yum remove docker docker-common container-selinux docker-seli ...

  2. Count the Colors---zoj1610线段树

    题目链接 题意: 求每种颜色有几段线段: 模拟数组: #include<stdio.h> #include<iostream> #include<algorithm> ...

  3. VUX

    1.mapState 2.mapGetters 3. 4. 当你的操作行为中含有异步操作,比如向后台发送请求获取数据,就需要使用action的dispatch去完成.其他使用commit即可. 举个例 ...

  4. python框架之Django(2)-简单的CRUD

    写一个简单的项目小例子来了解Django中的O/RM操作 前戏 创建app #在Django项目根目录下执行 python3 manage.py startapp [app name] 配置数据库连接 ...

  5. [sh]sh最佳实战(含grep)

    sh虐我千百遍,我待sh如初恋. sh复习资料 http://www.cnblogs.com/iiiiher/p/5385108.html http://blog.csdn.net/iiiiher/a ...

  6. 4.keras实现-->生成式深度学习之DeepDream

    DeepDream是一种艺术性的图像修改技术,它用到了卷积神经网络学到的表示,DeepDream由Google于2015年发布.这个算法与卷积神经网络过滤器可视化技术几乎相同,都是反向运行一个卷积神经 ...

  7. EXTJS 4.2.1.883 Summary 合计栏宽度bug

    EXTJS 4.2.1.883中改进了summary插件,使合计栏能够在grid最底部显示,但是列宽和表格对不上,解决方法: 找到以下样式 .x-docked-summary .x-grid-tabl ...

  8. python 全局变量与局部变量

    一.引用 使用到的全局变量只是作为引用,不在函数中修改它的值的话,不需要加global关键字.如: #! /usr/bin/python a = 1 b = [2, 3] def func(): if ...

  9. iOS 开发笔记-plist使用

    1.创建一个plist 2.填写为ImageList.plist 3.填入数据 4.完成 加载代码: @interface UYViewController () //图片信息的数组 @propert ...

  10. iOS 自定义日志输出

    在做iOS开发过程中,我们经常需要输出日志来查看某些数据是否打印出来,或者查看查个类是否被调用了. 系统默认的是NSLog(@"xxxx %d",1) ,但如果该APP要发布到商店 ...