20155318 《网络攻防》 Exp9 Web基础
20155318 《网络攻防》 Exp9 Web基础
基础问题
- SQL注入攻击原理,如何防御
- 就是通过把SQL命令插入到“Web表单递交”或“输入域名”或“页面请求”的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。设计程序中忽略对可能构成攻击的特殊字符串的检查。后台数据库将其认作正常SQL指令后正常执行,可能实现对后台数据库进行各种操作,甚至造成破坏后台数据库等严重后果。
- 预防:可以在后台控制输入的长度,对于一些特殊符号禁止用户输入
- XSS攻击的原理,如何防御
- XSS跨站脚本攻击,是Web程序中常见的漏洞,分三类,存储型XSS、反射型XSS、DOM-XSS.XSS属于被动式且用于客户端的攻击方式,攻击者向有XSS漏洞的网站中输入(传入)恶意的HTML代码,当其它用户浏览该网站时,这段HTML代码会自动执行,从而达到攻击的目的。
- 预防:对用户提交的的内容进行可靠的输入验证,在输入到输出的过程中进行过滤、转义
- CSRF攻击原理,如何防御
- CSRF就是冒名登录。跨站请求伪造的核心本质是窃取用户的Session,或者说Cookie,因为目前主流情况Session都是存在Cookie中.攻击者并不关心被害者具体帐号和密码,因为一旦用户进行了登录,Session就是用户的唯一凭证,只要攻击者能够得到Session,就可以伪装成被害者进入服务器
- 对于表单的提交这类操作使用post方法代替get方法,避免使用全站通用的cookie,用户在浏览其它站点前登出站点或者在浏览器会话结束后清理浏览器的cookie。
实验过程
开启WebGoat
WebGoat是OWASP组织研制出的用于进行web漏洞实验的应用平台,用来说明web应用中存在的安全漏洞。WebGoat运行在带有java虚拟机的平台之上,包含了XSS、线程安全、SQL注入等。
在命令行输入
java -jar webgoat-container-7.0.1-war-exec.jar
开启WebGoat出现如下信息表示成功
此时不要关闭命令行,打开浏览器访问localhost:8080/WebGoat,登录成功后可进行练习。
XSS注入攻击
1.Phishing with XSS
该实验的目的是读取登录用户的用户名和密码。修改html的源代码,生成一个包含form的html,写一个js将form提交的内容发送给攻击者,用弹窗alert做示例
首先输入编辑的XSS攻击的代码,将这段代码输入到输入框中,点击search出现如下登录框,会显示如登陆框:
在登录框中输入用户名、密码,点击登录后跳出弹框,其中包含用户输入的用户名、密码。
2.Stored XSS Attacks
通过在title中输入代码使用户访问时弹出非预期的内容。在这里我们在title中输入代码
<script>alert("你想在页面中显示的内容");</script>
3.Reflected XSS Attacks
将带有攻击性的URL作为输入源,例如依旧输入
<script>alert("想要显示的内容");</script>
,就会弹出对话框:这个和上个实验效果类似,但是两者所用的原理不一样,上一例存储型XSS是持久化的,代码是存储在服务器中,而这个实验中用的是反射型XSS攻击是非持久化的,一般来说存储型XSS攻击危害更大。
CSRF攻击
4.CSRF攻击
跨站请求伪造这个实验的目的是通过邮件的方式伪造一个转账请求。我们需根据题目里给出的数值参数来输入代码,在文本框中写入
<iframe src="attack?Screen=题中给出的scr&menu=题中给出的menu&transferFunds=转账金额"></iframe>
具体的参数可以参照右边的参数栏
提交后,会看到一个新的消息。点击它,用户的5000元就会被转走
5.绕过CSRF确认(CSRF Prompt By‐Pass)
网页中所有手动发起的请求操作,其实质是通过 HTML+JavaScript 向服务器发起请求。
我们的目标是给新闻组发送一封带有多个威胁请求的 Email查看页面右边Parameters中的src和menu值,并在title框中输入学号,message框中输入代码
<iframe src="attack?Screen=src值&menu=menu值&transferFunds=转账数额"> </iframe>
<iframe src="attack?Screen=src值&menu=menu值&transferFunds=CONFIRM"> </iframe>
- 查看用户操作的信息,攻击成功
SQL注入攻击
6.命令注入(Command Injection)
在正常的参数提交过程中,添加恶意的代码,往往能够得到以外的收获,比如执行系统命令。
点击firebug,调试网页源代码。在所请求的页面源代码中添加"& netstat -an & ipconfig"
点result后出现了网络端口使用情况和IP地址。
7.日志伪造(Log Spoofing)
通过注入恶意字符串,按照规则伪造出一条日志,目的是使用户名为“admin” 的用户在日志中显示“成功登录”。在Username输入```lxy%0d%0aLogin Succeeded for username: admin``,其中%0d是回车,%0a是换行符。
8.String SQL Injection
先随意输入一个用户进行查询
和数字sql注入相同,输入
' OR '1'='1
,也就是当1=1时输出信息,又由于1=1为恒等式,所以所有的用户信息都会被输出。9.Numeric SQL Injection
先查询一下不攻击的情况
需要尝试追加一个总是解析为true的SQL语句,拦截POST请求,用101 or 1=1替换101,将语句替换为
SELECT * FROM weather_data WHERE station = 101 OR 1=1
,即在查看器中更改代码如下图所示:攻击后即可查询全部城市天气
10.Blind Numeric SQL Injection
在输入框随意输入一个数字,运行后发现返回Account number is valid,说明这个数是合法的
构造输入语句101 AND ((SELECT pin FROM pins WHERE cc_number='1111222233334444') > 数值 );根据返回结果判定合法范围
判断2363
判断2364
使用二分法进行测试,确定值是2364,输入2364后破解成功
实验总结
- 本次实验在Webgoat平台上完成,通过命令注入、日志欺骗、数据库后门等方式,进行网络攻击。本次实验较为简单,选取了10个进行记录,在实验过程中遇到的问题,通过查询网上资料和参考其他同学的博客都得到一一解决。这次实践加深了我对这门课的认识,有很强的实用性~
20155318 《网络攻防》 Exp9 Web基础的更多相关文章
- 《网络攻防》Web基础
20145224陈颢文 <网络攻防>Web基础 基础问题回答 什么是表单: 表单是一个包含表单元素的区域.表单元素是允许用户在表单中输入信息的元素.表单在网页中主要负责数据采集功能. 浏览 ...
- 20145237《网络攻防》Web基础
基础问题回答 什么是表单: 表单是一个包含表单元素的区域.表单元素是允许用户在表单中输入信息的元素.表单在网页中主要负责数据采集功能. 浏览器可以解析运行什么语言: 超文本标记语言:HTML: 可扩展 ...
- 20155211 网络对抗 Exp9 Web安全基础实践
20155211 网络对抗 Exp9 Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御? 原理:SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语 ...
- 《网络攻防》Web安全基础实践
20145224陈颢文 <网络攻防>Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御: 部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,黑客利用这个bug在数 ...
- 20145326蔡馨熤《网络对抗》—— Web基础
20145326蔡馨熤<网络对抗>—— Web基础 1.实验后回答问题 (1)什么是表单. 表单是一个包含表单元素的区域,表单元素是允许用户在表单中输入信息的元素,表单在网页中主要负责数据 ...
- 20155305《网络对抗》Web基础
20155305<网络对抗>Web基础 实验过程 Web前端:HTML 使用netstat -aptn查看80端口是否被占用(上次实验设置为Apache使用80端口),如果被占用了就kil ...
- 20155307实验八 《网络对抗》 Web基础
20155307实验八 <网络对抗> Web基础 实验过程 Web前端:HTML 使用netstat -aptn查看80端口是否被占用(上次实验设置为Apache使用80端口),如果被占用 ...
- 20155311《网络对抗》Web基础
20155311<网络对抗>Web基础 实验过程 Web前端:HTML 使用netstat -aptn查看80端口是否被占用(上次实验设置为Apache使用80端口),如果被占用了就kil ...
- 20145216史婧瑶《网络对抗》Web基础
20145216史婧瑶<网络对抗>Web基础 实验问题回答 (1)什么是表单 表单在网页中主要负责数据采集功能.一个表单有三个基本组成部分: 表单标签.表单域.表单按钮. (2)浏览器可以 ...
随机推荐
- 排错-Ad Hoc Distributed Queries组件被禁用的解决办法
Ad Hoc Distributed Queries组件被禁用的解决办法 by:授客 QQ:1033553122 SQL Server 阻止了对组件 'Ad Hoc Distributed Queri ...
- View的layout机制
View框架的工作流程为:测量每个View大小(measure)-->把每个View放置到相应的位置(layout)-->绘制每个View(draw). 源代码分析 在View的源代码中, ...
- 使用Tomcat部署应用
概述 一个简单的web项目下载地址:https://files.cnblogs.com/files/Mike_Chang/hello.rar Tomcat部署应用三种方法. 方法一 将一个WAR文件或 ...
- NetBeans 打开项目中文乱码最简单的解决办法
网上各种修改配置文件,中文乱码还是没有解决,其实不是NetBeans的问题,是编辑器设置的字符集不支持中文,最简单的办法:!!! 设置新字体即可 !!!
- 【SPL标准库专题(10)】SPL Exceptions
嵌套异常 了解SPL异常之前,我们先了解一下嵌套异常.嵌套异常顾名思义就是异常里面再嵌套异常,一个异常抛出,在catch到以后再抛出异常,这时可以通过Exception基类的getPrevious方法 ...
- sqlserver sql优化案例及思路
始sql: SELECT TOP 100 PERCENT ZZ.CREW_NAME AS 机组, ZZ.CREW_ID, AA.年度时间, CC.当月时间, DD.连续七天时间 AS 最近七天 FRO ...
- 浅析C#中的Attribute
原文地址:http://www.cnblogs.com/hyddd/archive/2009/07/20/1526777.html 一.什么是Attribute 先看下面的三段代码: 1.自定义Att ...
- ASA 用TFTP 备份配置方法
一种方法是用ASDM,在菜单样哪项里有一个backup,保存为一个压缩文件rar,恢复也是用ASDM.另一种是用TFTP SERVER 来做,电脑用网线接上ASA,还要把cisco TFTP SERV ...
- elasticsearch报错之 memory locking requested for elasticsearch process but memory is not locked
安装elasticsearch报错如下: [2019-01-14T03:57:16,453][ERROR][o.e.b.Bootstrap ] [ip-172-31-30-62.ec2.interna ...
- 乘风破浪:LeetCode真题_031_Next Permutation
乘风破浪:LeetCode真题_031_Next Permutation 一.前言 这是一道经典的题目,我们实在想不出最好的方法,只能按照已有的方法来解决,同时我们也应该思考一下为什么要这样做?是怎么 ...