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. python数据结构之动态数组

    数组列表:动态数组(Array List) 简介: 最基础简单的数据结构.最大的优点就是支持随机访问(O(1)),但是增加和删除操作效率就低一些(平均时间复杂度O(n)) 动态数组也称数组列表,在py ...

  2. PHP漏洞-Session劫持

    http://os.51cto.com/art/201204/328888.htm

  3. ElasticSearch报 EsThreadPoolExecutor[search, queue capacity = 1000, org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor@c0efba

    ElasticSearch报以下错误的解决办法: "type": "es_rejected_execution_exception", "reason ...

  4. linux rz sz的安装

    可以使用yum来安装 yum -y install lrzsz 然后rz就是上传文件,sz就是把文件导到本地.sz 文件名  即可

  5. Spark-Cache与Checkpoint

    一.Cache缓存操作 scala> val rdd1 = sc.textFile("hdfs://192.168.146.111:9000/logs") rdd1: org ...

  6. 分块学习笔记qwq

    我没想到居然就学到分块了...哇我还一直觉得分块听起来挺牛逼的一直想学的来着qwq(其实之前好像vjudge上有道题是用分块做的?等下放链接qwq 所以想着就写个学习笔记趴qwq 首先知道分块的时间复 ...

  7. 使用QT设计师-信号和槽signal-slot(第一弹)

    自定义信号和槽的步骤: 1.定义信号---signal1 = pyqtSignal() 2.定义槽信号---def setSlot(self): 3.连接信号和槽函数---signal1.connec ...

  8. 有关线程安全的探讨--final、static、单例、线程安全

    我的代码中已经多次使用了线程,然后还非常喜欢使用据说是线程不安全的静态方法,然后又看到很多地方最容易提的问题就是这个东西线程不安全   于是我不免产生了以下几个亟待解决的问题: 什么样的代码是天生线程 ...

  9. Django +uwsgi+python3+nginx + mysql 部署

    环境: 服务器ip:192.168.0.110 centos服务器 6.4 + mysql 5.6 + django1.11 +nginx 1.13.7 + uwsgi 2.0.18 uwsgi介绍 ...

  10. InnoSQL HA Suite的实现原理与配置说明 InnoSQL的VSR功能Virtual Sync Replication MySQL 5.5版本引入了半同步复制(semi-sync replicaiton)的功能 MySQL 5.6支持了crash safe功能

    InnoSQL HA Suite的实现原理与配置说明  InnoSQL的VSR功能Virtual Sync Replication MySQL 5.5版本引入了半同步复制(semi-sync repl ...