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 ...
随机推荐
- FineBI表单如何更新
FineBI表单如何更新 1. 描述Cube单表更新,是指在某个业务包上面设置定时更新,在某个固定的时间点对某个的业务包中的特定表进行数据更新,部分更新分为两种,全量更新和增量更新,因而在更新策略上则 ...
- FileWriter剖析
集合这种容器存储数据,它只能在内存中临时存储,不能永久存储,这样会导致数据的丢失,所以出现了IO流. IO流用来处理设备之间的数据传输.可以用来做复制文件,上传文件,下载文件. 读数据是输入流,写数据 ...
- FFmpeg实现监控摄像头的RTSP协议转RTMP协议直播
文章来源:http://www.cuplayer.com/player/PlayerCode/RTSP/2014/0706/1419.html FFmpeg实现监控摄像头的RTSP协议转RTMP协议直 ...
- 如何在linux centos 环境下运行.exe文件
linux是不能运行window下的可执行文件的,必须借助于wine.百度了以下wine如下: Wine (“Wine Is Not an Emulator” 的递归缩写)是一个能够在多种 POS ...
- Java-Swing常用布局管理器
http://www.cnblogs.com/hthuang/p/3460234.html 5.Java-Swing常用布局管理器 应用布局管理器都属于相对布局,各组件位置可随界面大小 ...
- 【转】Ubuntu做日常开发电脑的系统是一种怎样的体验
[原文]https://www.toutiao.com/i6594291159911105031/ Ubuntu 我现在已经基本不开windows了.学习娱乐开发基本都在Ubuntu 首先你要接受的是 ...
- 题解 P1034 【矩形覆盖】
题面 在平面上有n个点(n≤50),每个点用一对整数坐标表示.例如:当n=4时,4个点的坐标分另为:p1(1,1),p2(2,2),p3(3,6),P4(0,7),见图一. 这些点可以用k个矩形(1≤ ...
- 利用Chrome浏览器的开发者工具截取整个页面
①打开Chrome浏览器的开发者工具: 快捷键: command + Alt + I (Mac). Ctrl + shift + I (Windows) 或者: 鼠标右键 -> 弹出菜单中选择 ...
- 团队作业——Beta冲刺4
团队作业--Beta冲刺 冲刺任务安排 杨光海天 今日任务:在同队成员帮助下,完成了浏览详情界面的跳转,以及图片的嵌入 明日任务:继续完成浏览详情界面 吴松青 今日任务:研究图片详情界面后端函数,遇到 ...
- Redis上踩过的一些坑
来自: http://blog.csdn.net//chenleixing/article/details/50530419 上上周和同事(龙哥)参加了360组织的互联网技术训练营第三期,美团网的DB ...