20145304 Exp9 Web安全基础实践
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安全基础实践的更多相关文章
- 20145236《网络对抗》Exp9 web安全基础实践
20145236<网络对抗>Exp9 web安全基础实践 一.基础问题回答: SQL注入攻击原理,如何防御 SQL Injection:就是通过把SQL命令插入到Web表单递交或输入域名或 ...
- 20145215《网络对抗》Exp9 Web安全基础实践
20145215<网络对抗>Exp9 Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御? SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符 ...
- 20145208 蔡野 《网络对抗》Exp9 web安全基础实践
20145208 蔡野 <网络对抗>Exp9 web安全基础实践 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 实验后回答问题 (1)SQL注入攻击原理,如何 ...
- 20155202《网络对抗》Exp9 web安全基础实践
20155202<网络对抗>Exp9 web安全基础实践 实验前回答问题 (1)SQL注入攻击原理,如何防御 SQL注入产生的原因,和栈溢出.XSS等很多其他的攻击方法类似,就是未经检查或 ...
- 20155204《网络对抗》Exp9 Web安全基础实践
20155204<网络对抗>Exp9 Web安全基础实践 一.基础问题回答 SQL注入攻击原理,如何防御? 原理: SQL注入即是指web应用程序对用户输入数据的合法性没有判断,攻击者可以 ...
- 20155210 Exp9 Web安全基础实践
Exp9 Web安全基础实践 实验过程 开启webgoat 输入java -jar webgoat-container-7.1-exec.jar,来运行webgoat 在浏览器输入localhost: ...
- 20155211 网络对抗 Exp9 Web安全基础实践
20155211 网络对抗 Exp9 Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御? 原理:SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语 ...
- 20155216 Exp9 Web安全基础实践
Exp9 Web安全基础实践 基础问题回答 1.SQL注入攻击原理,如何防御? 1.对用户的输入进行校验,可以通过正则表达式,双"-"进行转换等. 2.不要使用动态拼装sql,可以 ...
- 20155220 Exp9 Web安全基础实践
Exp9 Web安全基础实践 实验过程 开启webgoat 输入java -jar webgoat-container-7.1-exec.jar,来运行webgoat 在浏览器输入localhost: ...
随机推荐
- Django - 补充目录
Django项目部署 importlib应用 - django contenttypes - django组件 Django - Model操作 Django - 用户认证.用户组.用户权限 Djan ...
- 14nm或于6月量产,中芯首次披露12nm及第二代FinFET "N+1"计划(详细数据)
日前中芯国际公布2018年度第四季度业绩,实现营收7.88亿美元,14nm工艺进入客户验证阶段,可望于今年6月份量产,且12nm工艺开发取得突破. 根据中芯国际披露的财报,2018年第四季度实现营业收 ...
- Spark-Cache与Checkpoint
一.Cache缓存操作 scala> val rdd1 = sc.textFile("hdfs://192.168.146.111:9000/logs") rdd1: org ...
- 洛谷P3244 落忆枫音 [HNOI2015] 拓扑排序+dp
正解:拓扑排序+dp 解题报告: 传送门 我好暴躁昂,,,怎么感觉HNOI每年总有那么几道题题面巨长啊,,,语文不好真是太心痛辣QAQ 所以还是要简述一下题意,,,就是说,本来是有一个DAG,然后后来 ...
- IO流(3)删除文件或文件夹
删除功能:public boolean delete() * * 注意: * A:如果你创建文件或者文件夹忘了写盘符路径,那么,默认在项目路径下. * B:Java中的删除不走回收站. * C:要删除 ...
- python-面向对象-09_类属性和类方法
类属性和类方法 目标 类的结构 类属性和实例属性 类方法和静态方法 01. 类的结构 1.1 术语 —— 实例 使用面相对象开发,第 1 步 是设计 类 使用 类名() 创建对象,创建对象 的动作有两 ...
- PAT 1070 Mooncake[一般]
1070 Mooncake (25)(25 分) Mooncake is a Chinese bakery product traditionally eaten during the Mid-Aut ...
- jQuery在iframe里取得父窗口的某个元素的值
提供一款jQuery在iframe里取得父窗口的某个元素的值实现,这个iframe用js也差不多,有需要的朋友可以参考一下. 1.在父窗口中获取指定iframe(testiframe) id 为 te ...
- CentOS系统下的数据盘挂载
此教程适用系统:Linux(CentOS,Debian,Ubuntu,Fedora) 通常新开通的Linux云服务器数据盘都未做分区和格式化.在进行数据盘挂载之前我们要先进行分区以及格式化操作.注意, ...
- jquery 删除table行,该如何解决
query 删除table行< table > < tbody > < tr > < td > 这行原来就有 </ td > < ...