2014531王亦徐 《网络对抗技术》 Web安全基础实践

实验内容

  • 利用WebGoat平台尝试了一些XSS、CSRF、SQL注入攻击

基础问题回答

1、SQL注入攻击原理,如何防御
原理: SQL注入是指攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。
简单地认为是将sql语句作为输入交给表单或者通过域名等将sql交给后台,从而欺骗服务器执行sql语句

防范:

  • 过滤字符串,对一些数据库敏感字符进行过滤
  • 尽量不要让用户的输入直接放到后台数据库直接执行
  • 对用户输入的字符串进行合法性的判断

2、XSS攻击的原理,如何防御? 
原理:允许用户将代码注入到网页上,并能够被浏览器成功地执行,其他用户在观看网页时就会受到影响
防范:对一些特殊字符进行检测,尤其是一些敏感的非法字符;对参数进行过滤,特殊字符、可执行代码不允许通过。

3、CSRF攻击原理,如何防御
原理:伪装来自受信任用户的请求来利用受信任的网站,向web server发送恶意的请求。
防范:避免全站通用的cookie,严格设置cookie的域;在页面中减少暴露用户隐私信息。

实验总结与体会

本次实验主要是利用webgoat尝试一些攻击,有XSS、CSRF、SQL攻击,做完实验不禁有种幻想,以后看到一个输入框就想,在里面输入点语句,从而获得一些后台的数据库信息,由此也可见程序人员在编写web后台是要注意很多细节,有一个漏洞就可能会给攻击人员机会。还有就是我们在看网页时,如果看不到源码,可以利用burpsuite等软件,从而截获数据,更改源码。所以如果我们将来在写网页代码使,一定要注意对一些敏感的字符进行检验、过滤,尽可能地避免sql注入攻击。

实验过程记录

首先运行webgoat 在命令行里执行:java -jar webgoat-container-7.0.1-war-exec.jar

XSS攻击

Stored XSS Attacks

该实验是在新建帖子的message里进行XSS攻击,从而点击写好的帖子便会遭受攻击

在输入框中输入<script>alert("xiaoli succeed!");</script>

Reflected XSS Attacks

与之前那个类似,在ACCESS CODE 框里填入获取COOKIE的javascript代码<script>alert("xiaoli succeed!");</script>

与上面那个相比,这个是非持久的,上面那个通过留言板是持久的。

Phishing with XSS

在文本框里写好一个钓鱼网站,点击提交后便能够显示你的登陆名和密码

Cross Site Request Forgery(CSRF)

这个实验是要写一个URL诱使其他用户点击,从而触发CSRF攻击,我们将其放在了图片里

在message框中输入<img src="http://localhost:8080/WebGoat/attack?Screen=279&menu=5311&transferFunds=

其中的参数根据提供的来进行设置

4000"/>

CSRF Prompt By-Pass

和上一个实验类似,但是这次我们需要有两个请求,一是转账请求,二是确认转账成功请求

先在浏览器中输入URL:localhost:8080/WebGoat/attack?Screen=267&menu=900&transferFunds=5000进入确认转账请求页面:

确认转账后再次输入localhost:8080/WebGoat/attack?Screen=267&menu=900&transferFunds=CONFIRM

便能够成功实现转账

SQL注入攻

Numeric SQL Injection

利用sql语句注入使得原本只显示一个天气从而显示所有的天气信息

由于在网页中我们看不到网页执行sql语句的部分,所以我们利用burpsuite作为网页代理,将截获的数据修改后再次发向服务器

通过修改sql查询语句加上1=1的永真式,进而能够查询到所有的信息

Log Spoofing

这个实验通过利用回车换行%0d%0a来起到欺骗用户的目的,看上去是登陆成功了,实际上是失败的,知识一种障眼法

在user name处写入%0d%0aLogin succeeded !admin

String SQL Injection

同样是构造输入语句,由于用户名是字符类型的,所以需要加上‘,后面再加上永真式,并将后面的语句用--注释掉

在last name写是' or 1=1;--

SQL Injection

利用inspect elements修改输入框的字符长度限制,将其改为10,这样和之前的实验相似,通过构造永真式,便可以成功登陆

Database Backdoors1

本实验是要实现多条sql语句的注入

101是已给的存在的账户,可以先进行查询,可以得到用户信息

再接着就是现实所有的用户信息

在user ID中输入101;update employee set salary=5311;就能够更改101用户的salary信息

Database Backdoors2

第二步是要达到添加新用户时将新用户的邮箱改为固定的邮箱

直接使题目给定的语句101 or 1=1;CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='20145311@163.com'WHERE userid = NEW.userid;

Blind Numeric SQL Injection

该实验是为找到cc_number为1111222233334444的pin大小,输入正常用户ID 只会告诉你该账户是否存在

要知道cc_number对应的pin,我们一个一个地尝试,并且不断地缩小范围

在numer框中输入101 AND ((SELECT pin FROM pins WHERE cc_number='1111222233334444') > 某个数值 );

通过该语句我们不断地缩小查找的范围,最终缩小到2000多

接着我们可以进行猜测,同时我们猜想是否可以利用暴力破解,对该pin值进行破解

后来通过其他同学的实践,发现利用burpsuite也可以实现类似暴力破解的功能,首先截获数据,send to intruder设置攻击好载荷后,填写数值的范围,进行攻击,最终我们会发现需要的pin值

在用户id中输入101 AND ((SELECT pin FROM pins WHERE cc_number='1111222233334444') = 2364 );可以发现是合法的

最终输入pin值2364便能够成功

20145311王亦徐 《网络对抗技术》 Web安全基础实践的更多相关文章

  1. 20145311王亦徐 实验三 "敏捷开发与XP实践"

    20145311王亦徐 实验三 "敏捷开发与XP实践"程序设计过程 实验内容 使用 git 上传代码 使用 git 相互更改代码 实现代码的重载 git 上传代码 查看代码是否有修 ...

  2. 20145308 《网络对抗》Web安全基础实践 学习总结

    20145308 <网络对抗> Web安全基础实践 学习总结 实验内容 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 基础问题回答 (1)SQL注入攻击原理, ...

  3. 20145326蔡馨熤《网络对抗》—— Web安全基础实践

    20145326蔡馨熤<网络对抗>—— Web安全基础实践 1.实验后回答问题 (1)SQL注入攻击原理,如何防御. 原理: SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程 ...

  4. 20145216史婧瑶《网络对抗》Web安全基础实践

    20145216史婧瑶<网络对抗>Web安全基础实践 实验问题回答 (1)SQL注入攻击原理,如何防御 攻击原理: SQL注入攻击指的是通过构建特殊的输入作为参数传入web应用程序,而这些 ...

  5. 20145227鄢曼君《网络对抗》Web安全基础实践

    20145227鄢曼君<网络对抗>Web安全基础实践 实验后回答问题 1.SQL注入攻击原理,如何防御? SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是 ...

  6. 20145217《网络对抗》 Web安全基础实践

    20145217<网络对抗> Web安全基础实践 一.实践任务 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 二.实验后回答问题 (1)SQL注入攻击原理,如 ...

  7. 20155326《网络对抗》Web安全基础实践

    20155326<网络对抗>Web安全基础实践 实验后回答的问题 SQL注入攻击原理,如何防御? 原理:SQL注入攻击指的是在Web应用对后台数据库查询语句处理存在的安全漏洞,通过构建特殊 ...

  8. 20155206《网络对抗》Web安全基础实践

    20155206<网络对抗>Web安全基础实践 实验后问题回答 (1)SQL注入攻击原理,如何防御 攻击原理:SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查 ...

  9. 20155211 网络对抗 Exp9 Web安全基础实践

    20155211 网络对抗 Exp9 Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御? 原理:SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语 ...

  10. 20155305《网络对抗》Web安全基础实践

    20155305<网络对抗>Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御? 原理:SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL ...

随机推荐

  1. WebAPI安全

    1.Oauth Oauth2.0各语言版本公认框架https://oauth.net/code/

  2. Unittest + python

    Unittest简单应用 #_*_coding:utf8_*_ import unittest from selenium import webdriver import time class Tes ...

  3. summaryなな

    Word如果遇到有空白页不能删除的情况,将光标定位在空白页前一页的末尾,然后按Delete键就可以删除空白页了. 实时计算,强调的是实时.比如小明要查看他去年一年的消费总额度,那么当小明点下统计按钮的 ...

  4. Nginx常用功能

    3.Nginx常用功能 3.1 反向代理服务器 3.1.1.demo2 a.我在tomcat下部署了一个javaweb项目,tomcat安装的服务器IP为:192.168.37.136,部署的项目在t ...

  5. poj3074 DLX精确覆盖

    题意:解数独 分析: 完整的数独有四个充要条件: 1.每个格子都有填数字 2.每列都有1~9中的每个数字 3.每行都有1~9中的每个数字 4.每个9宫格都有1~9中的每个数字 可以转化成精确覆盖问题. ...

  6. multiprocessing 源码解析 更新中......

    一.参考链接 1.源码包下载·链接:   https://pypi.org/search/?q=multiprocessing+ 2.源码包 链接:https://pan.baidu.com/s/1j ...

  7. 使用Groovy+Spock轻松写出更简洁的单测

    当无法避免做一件事时,那就让它变得更简单. 概述 单测是规范的软件开发流程中的必不可少的环节之一.再伟大的程序员也难以避免自己不犯错,不写出有BUG的程序.单测就是用来检测BUG的.Java阵营中,J ...

  8. 20165305 苏振龙《Java程序设计》第四周课上测试补做

    第一次测试 第二次测试 第三次测试 上传代码 第四次测试 总结 之前我一直在git bash进行程序设计,但是对于我来说操作起来有点困难,所以我改用了虚拟机,之后之前一直困扰我的问题在虚拟机下就没有了 ...

  9. Linux服务器---流量监控MRTG

    MRTG MRTG可以分析网络流量,但是它必须依赖SNMP协议.将收集到的数据生成HTML文件,以图片的形式展示出来 1.安装一些依赖软件 [root@localhost bandwidthd-2.0 ...

  10. vue路由6:导航钩子

    <div id="app"> <div> <router-link to="/">首页</router-link> ...