20155234《网路对抗》Exp9 WEB安全基础
20155234 Exp9 Web安全基础
基础问答
- SQL注入攻击原理,如何防御?
SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意SQL命令的目的。
对于SQL注入攻击的防范,我觉得主要还是应该从代码上入手:
采用预编译语句集PreparedStatement,它内置了处理SQL注入的能力,只要使用它的setXXX方法传值即可。它的原理就是sql注入只对sql语句的准备(编译)过程有破坏作用,而PreparedStatement已经准备好了,执行阶段只是把输入串作为数据处理,而不再对sql语句进行解析准备,因此也就避免了sql注入问题;使用正则表达式过滤传入的参数,对一些包含sql注入的关键字进行过滤;采用字符串过滤的方法;jsp中调用该函数检查是否包含非法字符,防止SQL从URL注入。 - XSS攻击的原理,如何防御?
XSS是代码注入的一种,它允许恶意用户将代码注入到网页上,并能够被浏览器成功的执行,其他用户在观看网页时就会受到影响。这类攻击通常包含了HTML以及用户端脚本语言。XSS攻击的主要目的是,想办法获取目标攻击网站的cookie,因为有了cookie相当于有了seesion,有了这些信息就可以在任意能接进互联网的pc登陆该网站,并以其他人的身份登陆,做一些破坏。XSS的防御可以从以下两方面来进行:一种方法是在表单提交或者url参数传递前,对需要的参数进行过滤;检查用户输入的内容中是否有非法内容,如尖括号、引号等,严格控制输出。 CSRF攻击原理,如何防御?
我们知道XSS是跨站脚本攻击,就是在用户的浏览器中执行攻击者的脚本,来获得其cookie等信息。而CSRF是借用用户的身份,向web server发送请求,因为该请求不是用户本意,所以称为“跨站请求伪造”。
对于CSRF的防御也可以从以下几个方面入手:通过referer、token或者验证码来检测用户提交;尽量不要在页面的链接中暴露用户隐私信息,对于用户修改删除等操作最好都使用post操作;避免全站通用的cookie,严格设置cookie的域。实践过程
搭建实验平台WebGoat
在终端输入java -jar webgoat-container-7.0.1-war-exec.jar打开WebGoat服务。
由于WebGoat所占用的是8088端口,所以我们可以在浏览器上输入localhost:8080/WebGoat进入WebGoat实验平台。
SQL注入攻击
1.Command Injection
首先选择实验Command Injection
在所请求的页面源代码中查找BackDoor,并在Backdoor.help后面添加"& netstat -an & ifconfig"
回到主页面,在下拉菜单中选择刚刚添加的Backdoor.help"& netstat -an & ifconfig,点击View,提示完成实验,并查看结果,出现了网络端口使用情况和IP地址。
2.Numeric SQL Injection
在菜单栏中选择Numeric SQL Injection,查看hints,意思是从选择框中获取输入,并将其插入到预先形成的SQL命令的末尾。
根据上一次实验我们可以构造一个永真式,即1=1,再根据提示SELECT * FROM weather_data WHERE station = ?,可以知道我们只要把1=1添加到网页源代码中的station对应地区的部分在查询对应地区的天气,即可得到所有地区的天气信息
3.Log Spoofing
在菜单栏中选择Log Spoofing,查看hints,意思是试图通过使用一条语句来骗过人的眼睛,即通过注入恶意字符串,按照规则伪造出一条日志。
由于用户名后面的信息会出现在与用户名相同的一行,所以可以注入回车%0d和换行符%0a,在User Name输入5234%0d%0aLogin Succeeded for username: admin,这样就可以在日志中留下Login Succeeded for username: admin这样的假的登陆成功的日志。
4.String SQL Injection
使用字符串SQL注入来绕过身份验证,在不用输入正确密码的情况下登陆Neville账户。
这个实验与上面天气的实验类似,用户名我们选择Neville *****,密码我们输入' or 1=1 --
执行SQL注入以绕过授权。通过一个普通员工Larry的账户,浏览其bossNeville的账户信息。
进入后点击ViewProfil按钮,可以看到Larry自己的信息,想要看到老板的信息还是要去修改网页源代码。
搜索ViewProfile,找到大概位置,然后根据Larry定位到具体位置,尝试之前恒真式的修改方法,然后根据薪水降序排列让boss的信息排到第一个
修改后可以成功的看到老板的信息了
5.String SQL Injection
在表格的末尾进行SQL注入攻击
由于字符串是由'包裹起来的在last name出输入' OR '1'='1,因为1=1为恒真式,所以所有的用户信息都会被输出。
CSRF攻击
6.Cross Site Request Forgery (CSRF)
制作一个URL来诱惑其他用户点击,在这里我们以图片的的形式将URL放进Message框,这时的URL对其他用户是不可见的,用户一旦点击图片,就会触发一个CSRF事件。
输入其中的Screen和menu参数要根据网页后边的数值填写
7.CSRF Prompt By-Pass
与上一个任务差不多,多了一个确认转账的任务,依旧是attack?Screen=XXX&menu=YYY&transferFunds=ZZZ这种语法,Src值以及menu值同样在右侧确定,将语句代码添加到message中,提交,同样点击留言,转账并且确认
XSS攻击
8.Phishing with XSS
跨站脚本钓鱼攻击。要求是将html制作一个请求页面,添加javascript来实际收集信息。
将信息发送到http://localhost:8080/webgoat /catcher?PROPERTY=yes…
需要一个符合要求的XSS攻击代码插入到搜索字段
钓鱼网站构建成功后就可以窃取输入账号和密码了
9.Stored XSS Attacks
储存型XSS攻击,我们可以插入一个HTML标签在我们的留言板中,因为留言板可以输入任何信息,所以可以利用用户A进行恶意留言之后用户B点进来自动显示用户A的留言。
输入一条HTML语句
10.Reflected XSS Attacks
程序用动态页面向用户显示错误消息,该页面会使用一个包含消息文本的参数,并在响应中将这个文本返回给用户。因为它允许他们从应用程序中调用一个定制的错误页面通过邮件或者URL路径把它放到另外一个网页上,而不需要对错误页面中的消息分别进行硬编码。提示信息让我们输入
在Enter your three digit access code中输入
实验体会
九次实验都做完了,虽然有很多都只是看着同学的博客一个个仿照着做的,但感觉还是学到了一些东西的,毕竟通过自己的实践将这些实验都做完了。
20155234《网路对抗》Exp9 WEB安全基础的更多相关文章
- 20155211 网络对抗 Exp9 Web安全基础实践
20155211 网络对抗 Exp9 Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御? 原理:SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语 ...
- 20155202《网络对抗》Exp9 web安全基础实践
20155202<网络对抗>Exp9 web安全基础实践 实验前回答问题 (1)SQL注入攻击原理,如何防御 SQL注入产生的原因,和栈溢出.XSS等很多其他的攻击方法类似,就是未经检查或 ...
- 20155208徐子涵《网络对抗》Exp9 Web安全基础
20155208徐子涵<网络对抗>Exp9 Web安全基础 实验要求 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 实验过程 最后一次了,没有选择尝试免考项目 ...
- 2017-2018-2 20155314《网络对抗技术》Exp9 Web安全基础
2017-2018-2 20155314<网络对抗技术>Exp9 Web安全基础 目录 实验目标 实验内容 实验环境 基础问题回答 预备知识 实验步骤--WebGoat实践 0x10 We ...
- 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注入攻击原理,如何 ...
- 20155204《网络对抗》Exp9 Web安全基础实践
20155204<网络对抗>Exp9 Web安全基础实践 一.基础问题回答 SQL注入攻击原理,如何防御? 原理: SQL注入即是指web应用程序对用户输入数据的合法性没有判断,攻击者可以 ...
- 20155207 《网络对抗》 Exp9 Web安全基础
20155207 <网络对抗> Exp9 Web安全基础 实验内容 关于WebGoat Cross-Site Scripting(XSS)练习 Injection Flaws练习 CSRF ...
随机推荐
- AJAX的基本操作
AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. AJAX = 异步 JavaScript和 ...
- SurfaceViewVideoList网络获取视频播放
主布局: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:andro ...
- 【疑难杂症02】ResultSet.next() 效率低下问题解决
今天帮同事解决了一个问题,记录一下,帮助有需要的人. 一.问题解决经过 事情的经过是这样的,下午我在敲代码的时候,一个同事悄悄走到我身边,问我有没有用没用过Oracle,这下我蒙了,难道我在他们眼中这 ...
- StretchBlt和StretchDIBits
StretchBlt:从源矩形中复制一个位图到目标矩形,必要时按目标设备设置的模式进行图像的拉伸或压缩,如果目标设备是窗口DC,则意味着在窗口绘制位图,大致的使用代码如下: void DrawImag ...
- AWS CSAA -- 04 AWS Object Storage and CDN - S3 Glacier and CloudFront(三)
021 Storage Gateway 022 Snowball 023 Snowball - Lab 024 S3 Transfer Acceleration
- 使用托管快照创建作为 Azure 托管磁盘存储的 VHD 的副本
创建快照 创建 OS 或数据磁盘 VHD 的快照,以便将其用作备份或用于排查 VM 问题. 快照是 VHD 的完整只读副本. 使用 Azure 门户创建快照 登录到 Azure 门户. 首先在左上角单 ...
- SQLTest系列之INSERT语句测试
原文地址:https://yq.aliyun.com/articles/64375?spm=5176.100239.blogcont69187.22.fhUpoZ 摘要: 一款可以测试MSSQL Se ...
- SpringMVC_JDBC
链接:https://pan.baidu.com/s/1a8Aht1eIeRYGb78X9v3ubA 密码:h2zy 未完,待续...
- 利用windows的计划任务和eKing.CmdReadFileAndSendEmailOper(控制台小程序)实现远程登录服务器的邮件告警提醒
一.场景摘要: 1.windows计划任务中,有一个用户登录时候触发的事件 2.cmd命令:netstat -ano | find "3389" 可以看到当前远程登录的IP 3 ...
- laravel 安装步骤
1.将laravel安装文件里的 (composer.bat 和 composer.phar)放在你要使用的php版本 里的:如:D:\phpStudy\php\php-7.0.12-nts 2.进入 ...