20144306《网络对抗》Web安全基础实践
1 实验内容
- SQL注入攻击
- XSS攻击
- CSRF攻击
2 实验过程记录
2.1WebGoat说明与安装
关于WebGoat
WebGoat是OWASP组织研制出的用于进行web漏洞实验的应用平台,用来说明web应用中存在的安全漏洞。WebGoat运行在带有java虚拟机的平台之上,当前提供的训练课程有30多个,其中包括:跨站点脚本攻击(XSS)、访问控制、线程安全、操作隐藏字段、操纵参数、弱会话cookie、SQL盲注、数字型SQL注入、字符串型SQL注入、web服务、Open Authentication失效、危险的HTML注释等等。WebGoat提供了一系列web安全学习的教程,某些课程也给出了视频演示,指导用户利用这些漏洞进行攻击。
使用WebGoat
kali键入java -jar webgoat-container-7.0.1-war-exec.jar
运行WebGoat,在firefox浏览器中输入http://localhost:8080/WebGoat进入登录界面:
点击sign in登录答题。
2.2Injection Flaws
2.2.1 Numeric Injection
注入一条SQL语句来显示全部天气信息。
操作过程
先看一下后台流程:
station那里有个复选框,可以选择查看相应城市的信息,每选择一个城市,就会把该城市对应的station字段填入SELECT * FROM weather_data WHERE station = ?这条语句中,在数据库后台执行,并将从数据库中得到的搜索结果打印在屏幕上。
我们可以随便选择一个城市,把它对应的station或上一个永真式,填空后可以查找到所有数据库信息,再全部打印到屏幕上。
城市选择第一个,点击go
2.2.2 LAB:SQL Injection
- Stage 1:String SQL Injection
通过SQL注入来实现免正确密码登录,选择管理员用户,在密码栏输入‘ or 1=1 --
登录失败,应该是有其他的限制信息。
将密码输入长度增至20,再试一遍。
成功登录进入stage2,但是stage2只能在开发版中做。
- Stage 3:Numeric SQL Injection
用员工账号登陆,进入员工页面后再通过SQL注入来查看老板的账户信息。
先用刚才的方法选择一名员工登录。
从源代码中看一下在数据库中查找的方式,发现传递的参数是员工ID,想要调出老板账户信息,就得把老板排在id可以预测的位置,一般来说老板的工资都应该是最高的,所以把其中的value值改为101 or 1=1 order by salary desc --
,这样老板的信息就会被排到第一个:
点击viewprofile按键
成功看到老板的账户。
2.2.3 String SQL Injection
通过SQL注入来偷看所有信用卡号码。
- 操作过程
这一句显示了其在后台数据库搜索的过程,通过last_name,那么我们可以在输入框里输入‘ or 1=1 --来实现调取所有账户。
2.2.4 Database Backdoors
此题的要求是修改后台数据库数据给自己涨工资,然后在数据库中给自己造一个后门,把所有用户的邮箱换成自己的。
- 操作过程
先看一下提交方式
没有验证,就直接注入吧,在输入userid的地方输入 101; update employee set salary=10000
从此走向人生巅峰。
建后门:在输入框注入如下语句101;CREATE TRIGGER lxmBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='20144306@qq.com' WHERE userid = NEW.userid
2.2.5 Blind Numeric SQL Injection
此题的要求是找到pins
表中cc_number
字段值为1111222233334444
的记录中pin
字段的数值,从服务端页面返回的信息中可以知道,它只告诉你两种信息:帐号有效或无效。
- 操作过程
先输入语句101 AND ((SELECT pin FROM pins WHERE cc_number='1111222233334444') > 10000 );
查看pin
数值是否大于5000
在0-5000之间,用折半查找继续试
在0-2500之间
在1250-2500之间
在2000-2500之间
打开BurpSuite,截获报文进行暴力破解,先新设置一个8089端口,然后勾选该项
在浏览器进行手动代理设置
在webgoat端点击go,BurpSuite捕获到一条报文,右键选择send to intruder
然后在Intruder
下选择相关设置:
- 在
Target
中,设置本机IP地址HOST,和端口号,也就是WebGoat的地址和端口号
- 在
Positions
中,选择Sniper
模式,然后用光标选中需要暴力穷举的变量,在此处是account_number
后的值,然后点击右侧的add
添加(在此之前点击clear
清空所有的)
- 在
Payloads
中,选择type类型为number,然后设置变化范围2000-2500,并设置步长为1
- 在
Options
中,选择Start attack
开始攻击
找到数据包大小变化的位置2364
,用2364试一下,成功!
2.3 Cross-Site Scripting (XSS)
2.3.1 Phishing with XSS
此题要我们在搜索框中输入XSS攻击代码,利用XSS可以在已存在的页面中进一步添加元素的特点。我们先创建一个form,让受害人在我们创建的form中填写用户名和密码,再添加一段JavaScript代码,读取受害人输入的用户名和密码,并且将这些信息发送给http://localhost:8080/WebGoat/catcher?PROPERTY=yes...
- 操作过程
弹出提示框
成功
2.3.2 Stored XSS Attacks
此题因为没有对用户的输入进行编码,所以用户A可以任意输入,然后用户B点击用户A的留言,触发XSS
- 操作过程
title可以任意输入,Message输入消息,可以嵌入一段js代码,用户点击后即可触发,例如输入:<script>alert("20144306 attack succeed!");</script>
结果:
2.3.3 Reflected XSS Attacks
此题是一个反射型XSS攻击
- 操作过程
在enter your three digit access code:处输入 <script>alert("20144306 attack succeed!");</script>
结果:
2.3.4 Cross Site Request Forgery(CSRF)
此题是要写一个URL诱使其他用户点击,从而触发CSRF攻击,我们可以以图片的的形式将URL放进Message框,这时的URL对其他用户是不可见的,用户一旦点击图片,就会触发一个CSRF事件
- 操作过程
在Message里输入恶意代码:<iframe src="attack?Screen=282&menu=900&transferFunds=6666"></iframe>
点击submit后,再点击这个消息,成功。
2.3.5 CSRF Prompt By-Pass
此题包括了两个请求,一是转账请求,二是确认转账成功请求,即需要额外传递两个参数给服务器(transferFunds=4000,transferFunds=CONFIRM)
- 操作过程
在浏览器地址栏输入:
进入转账请求页面:
点击confirm后,再在浏览器地址栏输入上调语句,但是把fund值改成confirm,成功转出6666
3 实验问题回答
(1)SQL注入攻击原理,如何防御?
把前台输入的内容像填空一样填到后台递交给数据库的搜索语句中,凑成一个完整的SQL表达式,完成相应的任务。要防御的话可以进行输入检查,杜绝非法输入的可能。
(2)XSS攻击的原理,如何防御?
XSS令恶意用户将代码注入到网页上,并能够被浏览器成功的执行,主要是想要获取cookie。要防御的话可以进行输入字符数量控制,或者可以进行参数过滤。
(3)CSRF攻击原理,如何防御?
跨站请求伪造,盗用身份发送恶意请求。要防御的话可以通过referer、token或者验证码来检测用户提交,或者对cookie进行严格设置。
4 实验体会
终于通关了!yeah
20144306《网络对抗》Web安全基础实践的更多相关文章
- 20145334赵文豪网络对抗Web安全基础实践
1.SQL注入攻击原理,如何防御? SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意SQL命令的目的. 对于SQL注入攻击的防范,我觉 ...
- 2018-2019 20165221 网络对抗 Exp5 MSF基础
2018-2019 20165221 网络对抗 Exp5 MSF基础 实践内容: 重点掌握metassploit的基本应用方式,重点常用的三种攻击方式的思路.具体需要完成: 一个主动攻击实践,如ms0 ...
- 20145306 网路攻防 web安全基础实践
20145306 网络攻防 web安全基础实践 实验内容 使用webgoat进行XSS攻击.CSRF攻击.SQL注入 XSS攻击:Stored XSS Attacks.Reflected XSS At ...
- 20155324《网络对抗技术》web安全基础实践
20155324<网络对抗技术>web安全基础实践 实验内容 使用webgoat进行XSS攻击.CSRF攻击.SQL注入 实验问答 SQL注入攻击原理,如何防御 ①SQL注入攻击是攻击者在 ...
- 20155326《网络对抗》Web安全基础实践
20155326<网络对抗>Web安全基础实践 实验后回答的问题 SQL注入攻击原理,如何防御? 原理:SQL注入攻击指的是在Web应用对后台数据库查询语句处理存在的安全漏洞,通过构建特殊 ...
- 20145203盖泽双 《网络对抗技术》实践九:Web安全基础实践
20145203盖泽双 <网络对抗技术>实践九:Web安全基础实践 1.实践目标 1.理解常用网络攻击技术的基本原理. 2.Webgoat下进行相关实验:SQL注入攻击.XSS攻击.CSR ...
- 20145236《网络对抗》Exp9 web安全基础实践
20145236<网络对抗>Exp9 web安全基础实践 一.基础问题回答: SQL注入攻击原理,如何防御 SQL Injection:就是通过把SQL命令插入到Web表单递交或输入域名或 ...
- 20145215《网络对抗》Exp9 Web安全基础实践
20145215<网络对抗>Exp9 Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御? SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符 ...
- 20145208 蔡野 《网络对抗》Exp9 web安全基础实践
20145208 蔡野 <网络对抗>Exp9 web安全基础实践 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 实验后回答问题 (1)SQL注入攻击原理,如何 ...
- 20145308 《网络对抗》Web安全基础实践 学习总结
20145308 <网络对抗> Web安全基础实践 学习总结 实验内容 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 基础问题回答 (1)SQL注入攻击原理, ...
随机推荐
- Linux应急响应(四):盖茨木马
0x00 前言 Linux盖茨木马是一类有着丰富历史,隐藏手法巧妙,网络攻击行为显著的DDoS木马,主要恶意特点是具备了后门程序,DDoS攻击的能力,并且会替换常用的系统文件进行伪装.木马得名于其 ...
- PHP代码审计笔记--任意文件下载漏洞
在文件下载操作中,文件名及路径由客户端传入的参数控制,并且未进行有效的过滤,导致用户可恶意下载任意文件. 0x01 客户端下载 常见于系统中存在文件(附件/文档等资源)下载的地方. 漏洞示例代码: ...
- iOS开发--画一条黑色的横线
在网上搜索了下大概有下面几种方法: 1.使用Quartz2D画出横线 需要一个UIVIew把这两个Label装起来,你需要计算好他们的位置同时给黑线预留像素的位置.这样你在UIView里面- (voi ...
- 教你在windows下安装使用配置vim+gcc[转]
转自http://blog.163.com/lixiangqiu_9202/blog/static/535750372012461190722/ 一直在使用linux,但有时也会去虚拟机里的winxp ...
- CWnd与HWND的区别与转换
CWnd与HWND的区别与转换 2011-10-20 10:29:30| 分类: VC学习库|字号 订阅 一.区别HWND是句柄,CWnd是MFC窗体类,CWnd中包含HWND句柄成员对象是 ...
- Android学习之SeekBar(控制wav音频的声音)
使用SeekBar调节声音 SeekBar控件其实就是一个高级点的进度条,就像我们在听歌,看电影用的播放器上的进度条一样,是可以拖动的,可以改变进度的一个进度条控件! SeekBar常用属性: and ...
- Bootstrap - select2
1.调整select2下拉框的宽度 <style> .select2-container .select2-choice { height: 28px; line-height: 28px ...
- Matlab练习——寻找完全数
clc; clear; wq = []; : sum = ; k = ; : i / sum = sum + j; end end == i wq=[wq i]; end end disp(['2至1 ...
- 【框架学习】Nancy 框架
Nancy 框架 http://liulixiang1988.github.io/nancy-webkuang-jia.html .是一个轻量级用于构建http相应的web框架: .与mvc类似,有自 ...
- 使用 github Pages 服务建立个人独立博客全过程
你是否有这样子的需求,只是想简单的写写文章,记录下自己的学习心得.成长经历等,都是些文字内容,不需要配置使用数据库.不想购买服务器自己搭建站点,只是想安安静静的用比较舒服的方式来写篇文章. 静态博客就 ...