20164305 徐广皓《网络对抗》Exp9 Web安全基础实践
1.WebGoat实践
(1)wegoat安装
- 下载 webgoat-container-7.0.1-war-exec.jar ,开启WebGoat,在终端中输入命令 java -jar webgoat-container-7.0.1-war-exec.jar
- 在火狐中输入 http://localhost:8080/WebGoat 进入WebGoat登录界面
(2)攻击列表
Stored XSS Attacks
Cross Site Request Forgery(CSRF)
CSRF Prompt By-Pass
LAB:SQL Injection(Stage 3:Numeric SQL Injection)
Command Injection
Numeric SQL Injection
Log Spoofing
String SQL Injection
LAB:SQL Injection(Stage 1:String SQL Injection)
LAB:SQL Injection(Stage 3:Numeric SQL Injection)
Stored XSS Attacks
将带有攻击性的URL作为输入源,输入
<script>alert("1");</script>,
弹出对话框1
Cross Site Request Forgery(CSRF)
- 利用cookie冒名登录,用代码伪造请求
在message框中输入:<img src="http://localhost:8080/WebGoat/attack?Screen=288&menu=900&transferFunds=4305"/>,注意这里面的Screen和menu的值与右边Parameters一致
- 提交后,会在消息列表中看到一个新的消息,点击该消息,当前页面就会下载这个消息并显示出来,转走用户的4305元,攻击成功。
CSRF Prompt By-Pass
- 构造两次CSRF攻击,一是转账请求,二是确认转账成功请求,即transferFunds=4305,transferFunds=CONFIRM
在浏览器中手动输入URL:
localhost:8080/WebGoat/attack?Screen=275&menu=900&transferFunds=4305
进入确认转账请求页面- 点击了CONFIRM按钮之后,再在浏览器中输入URL:localhost:8080/WebGoat/attack?Screen=275&menu=900&transferFunds=CONFIRM,成功转走4305元:
Command Injection
这个题是要求能够在目标主机上执行系统命令,我们可以通过火狐浏览器下的一个扩展Firebug(就是右上角的小虫的标志)对源代码进行修改,例如在
BackDoors.help
旁边加上"& netstat -an & ipconfig"
:
2.之后在下拉菜单中能看到我们修改后的值
3.选中修改后的值再点view
,可以看到命令被执行,出现系统网络连接情况
Numeric SQL Injection
1.构造一个永真式就完事了
Log Spoofing
利用换行符伪造一个假的日志信息,在User Name文本框中输入xgh%0d%0aLogin Succeeded for username: admin,(
%0d
是回车,%0a
是换行符)
2.如图所示,攻击成功
String SQL Injection
在文本框中输入' or 1=1 --
2.Go
,攻击成功,所有用户信息都被显示出来
LAB:SQL Injection(Stage 1:String SQL Injection)
以用户Neville登录,在密码栏中输入'or 1=1--进行SQL注入成功
LAB:SQL Injection(Stage 3:Numeric SQL Injection)
以用户名Larry登录,登录之后看到浏览员工信息的按钮是
ViewProfile
- 在网页代码中分析按钮,发现是以员工ID作为索引传递参数的,我们要通过Larry来浏览老板账户信息,一般来说老板的工资都应该是最高的,所以把其中的value值改为101 or 1=1 order by salary desc --,老板的信息就会被排到第一个
2.实验问题
(1)SQL注入攻击原理,如何防御
SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
SQL注入攻击是黑客对数据库进行攻击的常用手段之一。
SQL注入攻击指的是就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
防御:
1.永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式,双"-"进行转换等。
2.永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。
3.永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。
4.不要把秘密信息直接存放,加密或者hash掉密码和敏感的信息。
(2)XSS攻击的原理,如何防御
XSS攻击:跨站脚本攻击。
XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如同源策略。
防御:
基于特征的防御:
传统XSS防御多采用特征匹配方式,在所有提交的信息中都进行匹配检查。对于这种类型的XSS攻击,采用的模式匹配方法一般会需要对“javascript”这个关键字进行检索,一旦发现提交信息中包含“javascript”,就认定为XSS攻击。
基于代码修改的防御:
步骤1、对所有用户提交内容进行可靠的输入验证,包括对URL、查询关键字、HTTP头、POST数据等,仅接受指定长度范围内、采用适当格式、采用所预期的字符的内容提交,对其他的一律过滤。
步骤2、实现Session标记(session tokens)、CAPTCHA系统或者HTTP引用头检查,以防功能被第三方网站所执行。
步骤3、确认接收的的内容被妥善的规范化,仅包含最小的、安全的Tag(没有javascript),去掉任何对远程内容的引用(尤其是样式表和javascript),使用HTTP only的cookie。
(3)CSRF攻击原理,如何防御
CSRF即跨站请求伪造。借用用户的身份,向web server发送请求,因为该请求不是用户本意,所以称为“跨站请求伪造”。
CSRF一般的攻击过程是,攻击者向目标网站注入一个恶意的CSRF攻击URL地址(跨站url),当(登录)用户访问某特定网页时,如果用户点击了该URL,那么攻击就触发了。
防御
referer
因为伪造的请求一般是从第三方网站发起的,所以第一个防御方法就是判断 referer 头,如果不是来自本网站的请求,就判定为CSRF攻击。但是该方法只能防御跨站的csrf攻击,不能防御同站的csrf攻击(虽然同站的csrf更难)。
使用验证码
每一个重要的post提交页面,使用一个验证码,因为第三方网站是无法获得验证码的。还有使用手机验证码,比如转账是使用的手机验证码。
使用token
每一个网页包含一个web server产生的token, 提交时,也将该token提交到服务器,服务器进行判断,如果token不对,就判定位CSRF攻击。
将敏感操作又get改为post,然后在表单中使用token. 尽量使用post也有利于防御CSRF攻击。
3.实验总结与体会
还有15分钟就不能交作业了,所以就少做点。。。感觉还是挺好玩的,要是在ctf比赛前作就更好了。最后一次实验就结束了,终于不用写博客了O(∩_∩)O哈哈~
转载于:https://www.cnblogs.com/zui-luo/p/10927825.html
20164305 徐广皓《网络对抗》Exp9 Web安全基础实践相关推荐
- 2018-2019 20165208 网络对抗 Exp9 Web安全基础
目录 2018-2019 20165208 网络对抗 Exp9 Web安全基础 实验内容 基础问题回答 实践过程记录 1. WebGoat准备 2. SQL注入攻击 2.1 Command Injec ...
- 20145227鄢曼君《网络对抗》Web安全基础实践
20145227鄢曼君<网络对抗>Web安全基础实践 实验后回答问题 1.SQL注入攻击原理,如何防御? SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是 ...
- 20145239杜文超《网络对抗》- Web安全基础实践
20145239杜文超<网络对抗>- Web安全基础实践 基础问题回答 (1)SQL注入攻击原理,如何防御? SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查 ...
- 网络对抗 Exp9 Web安全基础 20154311 王卓然
Exp9 Web安全基础 1. 实验内容 理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 2.实验步骤 WebGoat WebGoat是OWASP组织研制出的用于进行web漏洞实验的应 ...
- 20155202《网络对抗》Exp9 web安全基础实践
20155202<网络对抗>Exp9 web安全基础实践 实验前回答问题 (1)SQL注入攻击原理,如何防御 SQL注入产生的原因,和栈溢出.XSS等很多其他的攻击方法类似,就是未经检查或 ...
- 20145209刘一阳《网络对抗》Exp9 Web安全基础实践
20145209刘一阳<网络对抗>Exp9 Web安全基础实践 基础问题回答 1.SQL注入攻击原理,如何防御? SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求 ...
- Exp9 Web安全基础实践 20164323段钊阳
网络对抗技术 20164323 Exp9 Web安全基础实践 回答问题 (1)SQL注入攻击原理,如何防御 原理:通过在用户名.密码登输入框中输入特殊字符,在处理字符串与sql语句拼接过程中实现引号闭 ...
- EXP9 web安全基础实践
<网络对抗>Exp9 Web安全基础实践 WXP2 后门原理 一.基础问题回答 1.SQL注入原理,如何防御 SQL注入原理: 就是通过把SQL命令插入到"Web表单递交&quo ...
- 《网络攻防》Web安全基础实践
20145224陈颢文 <网络攻防>Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御: 部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,黑客利用这个bug在数 ...
- 20164305徐广皓 - Exp1 PC平台逆向破解(5)M
1.逆向及Bof基础实践说明 1.1实践目标 实践对象:pwn1的linux可执行文件 实践目的:使程序执行另一个代码(ShellCode) 实践内容: 手工修改可执行文件,改变程序执行 ...
最新文章
- colorAccent,colorPrimary,colorPrimaryDark 作用的地方
- (转)Apache Commons工具集简介
- 【Guava】使用Guava的RateLimiter做限流
- cocos2dx 坐标系统详解
- uva 10003——Cutting Sticks
- 图像处理自相关函数c语言,图像处理实验书.docx
- 高级排序求逆序数之分治法
- 中国女子高尔夫球场市场趋势报告、技术动态创新及市场预测
- 模拟集成电路学习心得(不见牛人,不懂世界之大!!!)
- Python Tricks(七)—— 使用 list 仿真先入先出的队列(FIFOQueue)
- 构建机器学习系统的20个经验教训
- 巧妙的使用RDP报表工具(免费报表工具、报表设计器)Excl绘制报表
- 【VHDL】VHDL设计一个分频器
- Windows和Linux下搭建J2sdk的环境
- 逆火软件测试工资,逆火刷机软件介绍和软件使用说明
- python画猫和老鼠代码_Python实现猫捉老鼠小游戏!虽然简陋但是童真永在!
- IBM X 345服务器无法从光驱启动配置解决方法——非常规方法
- 使用DistrbutedDataParallel时,nvdiai-smi显示每个进程都占用GPU:0
- 算法总结 — 并查集
- Windows-端口状态含义
热门文章
- android 考试倒计时,考试倒计时软件下载-考试倒计时v1.0 最新版-腾牛安卓网
- Python入门(10)——宝可梦数据集探索
- TESLA M40折腾笔记
- 用轻量服务器搭建自己的pdf在线工具箱(支持pdf压缩以及pdf OCR)
- Linux rm -rf 之rm: cannot remove `linux': Device or resource busy
- 小型项目程序 ERP——沙盘模拟
- 有关安全证书汇总及其科普
- Android P使用pm install安装apk报错
- EduCoder-Web程序设计基础 -web编程训练-html5-文档头部-第1关:页面标题及字符集的设置
- educoder:第3关:嵌套循环 - 跃迁能量表