启动webgoatjava
Numeric SQL Injection(数字型注入)git
String SQL Injection(SQl语句注入)github
Database Backdoors(数据库后门)web
Phishing with XSS(XSS钓鱼攻击)sql
Stored XSS Attacks(存储型XSS攻击)数据库
Reflected XSS Attacks(反射型XSS攻击)浏览器
Cross Site Request Forgery(跨站脚本攻击)安全
CSRF Prompt By-Pass(不太清楚该咋翻译)服务器
下载webgoat:网站https://github.com/WebGoat/WebGoat/releases/tag/7.0.1,下载webgoat-container-7.0.1-war-exec.jar(这里多说一句8.0.0版本的有问题,有点头秃,看到以前的学长学姐用的都是7.0.1,那就也用这个版本吧)
再有该文件的在命令行输入 java -jar webgoat-container-7.0.1-war-exec.jar 开启WebGoat
运行一段时间以后命令行出现Starting ProtocolHandler证实开启成功
打开浏览器访问localhost:8080/WebGoat
若是右侧未出现课程则从新下载jdk(一开始左边只有一栏,忘记截图)看了学姐的博客知道是编译后的java程序与Linux上的java Se版本不一致而产生的错误,我服了,真是啥问题都给赶上;不过直接下载个jdk1-8,而后按这篇连接作就行。
目的:容许用户查看天气数据,经过注入一条SQL语句来显示所有天气信息
原理:经过选择不一样地点,能够选择查看相应城市的信息。每选择一个城市,就会把该城市对应的station字段填入SELECT * FROM weather_data WHERE station = ?这条语句中,在数据库后台执行,并将从数据库中获得的搜索结果打印在屏幕上
而后右键选择inspter....,这里找sql语句的values加上 or 1=1 永真以显示其余城市,这里找sql语句时候要耐心
而后这里再选哥伦比亚->GO就会惊喜的发现这里全部的城市都显示了
日志欺骗就是经过添加假的日志文件以实现登陆,在User Name输入 lyz%0d%0aLogin Succeeded for username: admin ,%0d表示空格,%0a表示换行;接下来点击登陆会显示两行信息,第二行显示admin登录成功,证实登录成功
题目中 SELECT * FROM user_data WHERE last_name = 'Your name' ,咱们知道他是一个查询语句,因此真正须要修改的就是查询名字那里
而咱们须要显示全部用户的信息,因此这里在查询时加入用永真式语句'or 1 = 1',将查询语句变为 SELECT * FROM user_data WHERE last_name = ''or 1 = 1 ,因为有一个条件永远为真,所以会查询全部用户的信息(其实感受这里原理和数字注入原理差很少)
惊喜的发现还有步骤二,就是让你设置一个tigger,达到目的:只要添加了新员工,就把他邮箱设置成john@hackme.com
101 or 1=1;CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='john@hackme.com'WHERE userid = NEW.userid;
完成
在搜索框中输入XSS攻击代码,利用XSS能够在已存在的页面中进一步添加元素的特色。咱们先建立一个form,让受害人在咱们建立的form中填写用户名和密码,再添加一段JS代码,读取受害人输入的用户名和密码,而且将这些信息发送给http://localhost:8080/WebGoat/catcher?PROPERTY=yes...
能够发现下方多了一个登陆页面
存储型XSS攻击,经过输入代码使用户访问时弹出非预期的内容。
反射型XSS是最多见的Web应用程序安全漏洞之一;
指:攻击者在网页嵌入客户端脚本,一般是JavaScript编写的危险代码,当用户使用浏览器浏览网页时,脚本就会在用户的浏览器上执行,从而达到攻击者的目的;
在上一次的实验八中实际上作的就是反射型XSS,这里在文本框加入和上文同样的警告,发现结果同样,证实攻击成功
实验要求目标是发一个电子邮件给newsgroup,内容包括一个有恶意请求的图片URL。这个URL指向“attack”(包含参数“Screen”和“Menu”,还有一个参数“transferFunds”(转帐))。若是收到含有CSRF页面的邮件时,就会执行transferFunds。 在框中输入代码 ,当受害者浏览这个网页时,会发送一个transferFunds的请求,浏览器认为是正常的打开图片请求,但实际执行了恶意转帐请求。
在文本框中提交一个含有转帐恶意请求的代码,<img src="http://localhost:8080/WebGoat/attack?Screen=&menu=900&transferFunds=104"/>
成功后旁边会有对勾
网页上的手动发起的请求,经过HTML+JavaScript向服务器请求;这道题的要求咱们确认用户转帐,也就是说url须要使用下面两个参数:transferfunds=数额 和transferfunds=CONFIRM
<iframe src="attack?Screen=279&menu=533&transferFunds=5104">
</iframe>
<iframe src="attack?Screen=279&menu=533&transferFunds=confirm" >
</iframe>
SQL注入攻击原理,如何防护
sql注入原理:就是经过把SQL命令插入到“Web表单递交”或“输入域名”或“页面请求”的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,来获取一些隐私信息甚至越权登陆。
防护手段:
一、使用参数化筛选语句,为了防止SQL注入,用户输入不能直接嵌入到SQL语句中。
二、避免使用解释程序,这是黑客用来执行非法命令的手段。
三、防止SQL注入,但也避免一些详细的错误消息,由于黑客可使用这些消息。标准的输入验证机制用于验证全部输入数据的长度、类型、语句和企业规则。
四、使用专业的漏洞扫描工具。
五、最后,企业在Web应用程序开发过程的全部阶段执行代码安全检查。首先,安全测试应该在部署Web应用程序以前实现,这比之前更重要、更深远。企业还应在部署后使用漏洞扫描工具和站点监控工具测试网站。
(二)XSS攻击的原理,如何防护
XSS攻击原理:利用网页开发时留下的漏洞,将恶意代码植入网页,使用户加载并执行攻击者恶意制造的网页程序。攻击成功后,能够进行越权操做、获取私密网页内容、会话和cookie等各类内容
防护手段:
1.对输入和URL参数进行过滤(白名单和黑名单)
2.对输出内容进行编码
(三)CSRF攻击原理,如何防护
CSRF攻击原理:利用你关闭网站但未结束的会话,盗取你的身份以你名义发送邮件,发消息,盗取你的帐号,甚至于购买商品,虚拟货币转帐......
防护手段:
1.客户端页面增长伪随机数(验证码)
2.按期清理cookie
本次实验实际上本质是利用教学软件webgoat进行了一系列的的sql、xss、crsf攻击以用来达到更加了解网络安全的目的,在平时也能更好的防范这几种攻击;感受实验八和实验九弥补了上学期的不少欠缺的知识点;此次试验是本学期的最后一次是实验,虽然不少实验作起来很艰辛;但总体来讲仍是受益不浅的