您的位置:首页 > 理论基础 > 计算机网络

20145302张薇 《网络对抗技术》 web安全基础实践

2017-05-16 14:37 465 查看

20145302张薇 《网络对抗技术》 web安全基础实践

实验问题回答

1.SQL注入攻击原理,如何防御

原理:攻击者把SQL命令插入到网页的各种查询字符串处,达到欺骗服务器执行恶意的SQL命令。

防御:在网页设计时对文本框的输入进行限制,比如说长度限制、不能出现#号等

2.XSS攻击的原理,如何防御

原理:攻击者在可输入域插入一些html或脚本语言使服务器执行那些代码

防御:关键字防御,比如过滤
<script>
这种敏感词汇,减少被攻击的风险

3.CSRF攻击原理,如何防御

原理:一般人A在登陆后,在自己的主机页面点击的各类请求都是以A的名义发送的,即A有A的权限;攻击者B在网页注入一个恶意的CSRF攻击URL地址,在A点击后,B借用A的身份进行非法操作,即B有了A的权限

防御:1.cookie的保存时间不宜过长;2.服务器要求用户输入相对应的验证码;3.服务器尽量在表单中使用post方法

实验总结与体会

在提交博客的时候发现:博客园没对xss攻击进行防御啊……使用
<iframe>
标签,后面的内容直接就被眯掉了,还有
<br>
换行……直接就在网页换行了啊兄弟……

还有
<script>
也不行啊!!!

想实现SQL注入,首先要对SQL语句了解

想实现xss攻击,我们需要了解网页前端如何编写

想实现CSRF攻击,我们需要了解cookie的原理

实践过程记录

1.phishing with XSS

跨站脚本钓鱼攻击



这道题我们只做出登陆的界面是无法通过的,我们需要使用script语言来捕获用户输入的用户名与密码

2.Stored XSS Attacks

储存式XSS攻击

<Script Language="JavaScript"> alert("20145302what??????????"); </Script>




这就是简单的xss攻击啊,在信息框输入我们想要的操作就行

3.Reflected XSS Attacks

反射型XSS攻击



代码只在Enter your three digit access code:这个框输入攻击有效

4.Cross Site Request Forgery (CSRF)

跨站请求伪造

这道题的题意是攻击者发一个帖子,用户点进去后被攻击者盗用身份进行一些恶意的行为

题中告诉我们需要找到screen和menu这两个信息,这两个信息在网页右侧有显示;并告知恶意行为是转5000;另外,为了让用户没有察觉,我们把恶意攻击行为隐藏在一个用户看不见的图片中

<img src='attack?Screen=278&menu=900&transferFunds=5000' width='1' height='1'>


点进我们的帖子,左侧就会显示绿色的小对勾了,帖子显示如下:



可以看到message处没有什么东西的感觉,为了观察明显,我们再发一个帖子,并将图片的长度与宽度调为10:



很明显的观察到了我们的小图片

5.CSRF Prompt By-Pass

题意要求转账与确认转账两部分,而且给了格式

test anzunayinger!<img src='attack?Screen=266&menu=900&transferFunds=5000' width='1' height='1'><img src='attack?Screen=266&menu=900&transferFunds=CONFIRM' width='1' height='1'>




点进帖子即可成功,除了用观察不到的图片外,我们可以使用
<iframe>
标签来插入恶意代码(
<iframe>
标签不是所有浏览器都支持)

6.String SQL Injection



很简单的

7.Database Backdoors

这道题用了上一道题的表,所以输入一个
101 or 1=1;
试一下:



出现了所有人的信息,但是还没成功,我又读了一下题,发现得更新工资栏,所以输入:
101 or 1=1;update employee set salary=5302;




8.Numeric SQL Injection

这道题的特点是用户不能在文本框内输入,只能选择按钮,所以我们需要用到代理服务器

我们将捕捉到的信息send to repeater,随后我们在send to repeater标签内将Params表格的位置数据改为永真式,这样我们就可以将四个位置的温度都显示出来了

之前我试了直接在Raw标签内修改,这种方法是错误的,因为我们可以看到在Params表格内修改后Raw的数据不是普通的十进制数字,而是ASCII码的形式

在右侧,可以观察到SQL语句更变为查找了永真式:



我们将代理服务器拦截关闭后回到webgoat题目部分,即成功

9.Log Spoofing

……刚做这个用永真式试了半天一直不对……看了提示才发现……这道题是假装登陆成功

<br>Welcome!admin! You Login succeeded!</br>


嘻嘻,这是一个致命的错误,用
<br>
一辈子也成功不了……

我们应该使用
%0d%0a
这个回车换行符号来进行欺骗



10.stage 1: String SQL Injection

这道题先尝试在密码框输入:
' or 1 = 1 --
,发现密码框被设置只能输入8位,这样登陆是失败的

所以我们在密码框处右键进入Inspect Element,将其长度改为16,格式改为text便于我们查看自己输入的东西:



输入
' or 1 = 1 --
,登陆成功,用户名是larry:)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: