20145216史婧瑶《网络对抗》Web安全基础实践
20145216史婧瑶《网络对抗》Web安全基础实践
实验问题回答
(1)SQL注入攻击原理,如何防御
- 攻击原理: SQL注入攻击指的是通过构建特殊的输入作为参数传入web应用程序,而这些输入大都是SQL语法里的一些组合,程序通过执行SQL语句进而执行攻击者所要的操作。其主要原因是程序没有细致的过滤用户输入的数据,致使非法数据侵入系统。
- 防御方法:
- 对输入的数据进行过滤,将常见的sql语句的关键词:select or ' " 等字符进行过滤。
- 对在数据库中对密码进行加密,验证登陆的时候先将密码进行加密再与数据库中加密的密码进行对比,若此时一致则基本是安全的。
- 对数据库中密码采用常用的MD5加密时尽量在字符串的前边和后边加上指定字符后在进行加密,这样即便是看到了数据库也很难破解密码。
(2)XSS攻击的原理,如何防御
- 攻击原理: XSS攻击是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。
- 防御方法:
- 当恶意代码值被作为某一标签的内容显示:在不需要html输入的地方对html标签及一些特殊字符( ” < > & 等等 )做过滤,将其转化为不被浏览器解释执行的字符。
- 当恶意代码被作为某一标签的属性显示,通过用“将属性截断来开辟新的属性或恶意方法:属性本身存在的单引号和双引号都需要进行转码;对用户输入的html标签及标签属性做白名单过滤,也可以对一些存在漏洞的标签和属性进行专门过滤。
(3)CSRF攻击原理,如何防御
- 攻击原理: CSRF跨站请求伪造是一种对网站的恶意利用,通过伪装来自受信任用户的请求来利用受信任的网站。
- 防御方法:
- 通过referer、token或者验证码来检测用户提交。
- 尽量不要在页面的链接中暴露用户隐私信息。
- 对于用户修改删除等操作最好都使用post操作。
- 避免全站通用的cookie,严格设置cookie的域。
实验总结与体会
这次实验让我知道了许多网络攻击技术,再次感叹网络的不安全性!比如仅仅只需要简简单单的一个输入,攻击者就可以让程序执行他想要的操作。所以我们以后在设计网站的时候一定要谨慎啊,针对这些攻击做出相应的防范措施,提高网络的安全性。
实践过程记录
首先开启webgoat:


SQL注入攻击:
String SQL Injection(SQL字符串注入):
题目要求尝试使用SQL注入,使得所有银行卡都可以被展现。
首先按题目尝试输入Smith,发现查询出来都是last_name是Smith的表单,分析后知道是需要WHERE这个条件语句失效,因此构造一个用真式'or 1='1 。
Log Spoofing(日志欺骗):
这道题大概意思是说,我们输入的用户名会被追加到日志文件中。所以我们可以使用障眼法来使用户名为“admin”的用户在日志中显示“成功登录”,例如在User Name文本框中输入%0d%0aLogin succeeded !admin ,其中%0d是回车,%0a是换行符,结果就像登录成功一样。

Stage 1 String SQL Injection
字符串型注入,要求使用SQL注入绕过认证,实现无密码登陆。
在密码栏输入' or 1 = 1 -- ,发现输入错误:

查看源代码,原来最长只能输入8位,把长度限定改为15,把文本框格式改为text,再次输入' or 1 = 1 --,成功。


Stage 3 Numeric SQL Injection
数字型注入,要求使用一个普通员工的账户,浏览其BOSS的账户信息。
首先通过Larry的账户登陆(密码为larry),更改登录后页面源代码value值为112 or 1=1 order by salary desc 。

点击ViewProfile查看信息:

Blind Numeric SQL Injection(盲数字注入)
题目要求是得到一个存放在pins表中值pin的内容,行号cc_number=1111222233334444,是一个int型的数据。使用盲注方式,输入101 AND ((SELECT pin FROM pins WHERE cc_number='1111222233334444') > 2500),显示不合法:

再次输入101 AND ((SELECT pin FROM pins WHERE cc_number='1111222233334444') > 2300)显示合法:

最后试出来值为2364,成功。

XSS攻击
Phishing with XSS(跨站脚本钓鱼攻击)
关于一个页面中存在XSS漏洞时,它如何支持钓鱼攻击。
在文本框里面写一个钓鱼网站代码就可以了,这里我参考了其他同学的代码,将代码粘过去后登录,成功。

Stored XSS Attacks
题目要求:要创建非法的消息内容,可以导致其他用户访问时载入非预期的页面或内容。
直接在title里随便输入,然后在message中输入一串代码,比如:<script>alert("20145216");</script> 提交后,再次点击刚刚创建的帖子,成功弹出窗口,说明攻击成功。

Reflected XSS Attacks
将带有攻击性的URL作为输入源,比如<script>alert("20145216sjy");</script> ,就会弹出对话框:

这个看上去和上面的Stored XSS Attacks很相似,但是原理不同,上面的是存储式的,这个是通过写在url里面达到的效果,里面的脚本也可以改写成其他恶意的内容。
CSRF攻击
Cross SSite Request Forgery(CSRF)
题目要求:需要写一个URL诱使其他用户点击,从而触发CSRF攻击。
在message里面输入<img src='attack?Screen=282&menu=900&transferFunds=10000' width='1' height='1'>,就会发出一个转钱的请求,盗取钱财。

提交后,会在消息列表中看到一个新的消息,点击该消息,当前页面就会下载这个消息并显示出来,转走用户的钱,达到CSRF攻击的目的。

CSRF Prompt By-Pass
这个就是利用CSRF进行冒名操作转账,不过这次包括了两个请求,一是转账请求,二是确认转账成功请求,即需要额外传递两个参数给服务器(transferFunds=5000,transferFunds=CONFIRM)。直接在message中写入攻击代码,然后提交:

点击CONFIRM按钮,成功。

完成情况:


20145216史婧瑶《网络对抗》Web安全基础实践的更多相关文章
- 20145334赵文豪网络对抗Web安全基础实践
1.SQL注入攻击原理,如何防御? SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意SQL命令的目的. 对于SQL注入攻击的防范,我觉 ...
- 20145216史婧瑶《网络对抗》Web基础
20145216史婧瑶<网络对抗>Web基础 实验问题回答 (1)什么是表单 表单在网页中主要负责数据采集功能.一个表单有三个基本组成部分: 表单标签.表单域.表单按钮. (2)浏览器可以 ...
- 20145216史婧瑶 《网络对抗》 MSF基础应用
20145216史婧瑶 <网络对抗> MSF基础应用 实验回答问题 用自己的话解释什么是exploit,payload,encode. exploit:渗透攻击模块,测试者利用它来攻击一个 ...
- 20145216史婧瑶《网络对抗》逆向及Bof进阶实践
20145216史婧瑶<网络对抗>逆向及Bof进阶实践 基础知识 Shellcode实际是一段代码,但却作为数据发送给受攻击服务器,将代码存储到对方的堆栈中,并将堆栈的返回地址利用缓冲区溢 ...
- 20145216史婧瑶《Java程序设计》第五次实验报告
20145216 实验五<Java网络编程> 实验内容 1.掌握Socket程序的编写 2.掌握密码技术的使用 3.设计安全传输系统 实验要求 1.基于Java Socket实现安全传输 ...
- 20145216史婧瑶《Java程序设计》第10周学习总结
20145216 <Java程序设计>第10周学习总结 教材学习内容总结 网络编程 一.网络概述 网络编程就是两个或多个设备(程序)之间的数据交换. 识别网络上的每个设备:①IP地址②域名 ...
- 20145216史婧瑶《Java程序设计》第9周学习总结
20145216 <Java程序设计>第9周学习总结 教材学习内容总结 第十六章 整合数据库 16.1 JDBC入门 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找. ...
- 20145216史婧瑶《Java程序设计》第8周学习总结
20145216 <Java程序设计>第8周学习总结 教材学习内容总结 第十五章 通用API 15.1 日志 java.util.logging 包提供了日志功能相关类与接口,不必额外配置 ...
- 20145216史婧瑶《Java程序设计》第7周学习总结
20145216 <Java程序设计>第7周学习总结 教材学习内容总结 第十三章 时间与日期 13.1 认识时间与日期 就目前来说,即使标注为GMT(无论是文件说明,或者是API的日期时间 ...
随机推荐
- POJ 2342 - Anniversary party - [树形DP]
题目链接:http://poj.org/problem?id=2342 Description There is going to be a party to celebrate the 80-th ...
- Cross-origin resource sharing JSON with Padding 同源策略 JSONP 为什么form表单提交没有跨域问题,但ajax提交有跨域问题? XMLHttpRequest and the Fetch API follow the same-origin policy 预检请求(preflight request)
https://zh.wikipedia.org/wiki/跨来源资源共享 跨来源资源共享(CORS)是一份浏览器技术的规范,提供了 Web 服务从不同域传来沙盒脚本的方法,以避开浏览器的同源策略[1 ...
- PHP之ctype扩展
$str = "121"; 检查成功返回true 否则返回false //检测一个字符串是否是纯字符(a-z,A-Z) var_dump(ctype_alpha($str));// ...
- Qt Creator 4.3.0,Quick Designer里面也看以同时看到和编辑qml code了(Qt5.9的配套IDE)
作者:Summer Fang链接:https://www.zhihu.com/question/60486611/answer/177584284来源:知乎著作权归作者所有.商业转载请联系作者获得授权 ...
- navicat的安装
1.首先在官网下载navicat,具体安装步骤比较简单,下一步下一步即可. 2.安装之后,按照下面的网址做法激活 http://www.jianshu.com/p/b1f9194e1e31 3.教程: ...
- 【Python】Pycharm2018激活方式【亲测好用】
2.激活码激活 优点:Window.Mac.Ubantu都稳定有效,关键是这种激活方式不会产生其他影响 缺点:需要修改hosts文件 修改hosts文件将0.0.0.0 account.jetbrai ...
- 前端 html input标签 placeholder属性 标签上显示内容
前端 html input标签 的placeholder属性 标签上显示内容 <!DOCTYPE html> <html lang="en"> < ...
- python 基础 列表生成式 生成器
列表生成式 列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式 举个例子,要生成list [1, 2, 3, 4, 5, 6, 7, ...
- 配合dedecms内容模型实现后台输入栏目id前端输出文章列表
为了简化开发的工作量,也方便编辑快速操作,决定将后台进行重新设置.配合dedecms内容模型实现后台输入栏目id前端输出文章列表,这样制作科室专题页也变快了很多.比如,我们添加一个“科室专家栏目id” ...
- java-信息安全(八)-迪菲-赫尔曼(DH)密钥交换【不推荐,推荐Oakley】
概述 信息安全基本概念: DH(Diffie–Hellman key exchange,迪菲-赫尔曼密钥交换) DH 是一种安全协议,,一种确保共享KEY安全穿越不安全网络的方法,它是OAKLEY的一 ...