netstat -tupln | grep 8080
查看端口是否被占用,若是被占用,用kill 进程号
终止占用8080端口的进程。由于kali始终没法安装JDK,故使用本机实验。java -jar webgoat-container-7.0.1-war-exec.jar
localhost:8080/WebGoat
直接用默认用户名密码登陆便可,开始练习概念:命令注入攻击对任何一个以参数驱动的站点来讲都是一个严重威胁。这种攻击技术背后的技术方法,简单易学,能形成大范围的损害,危及系统安全。尽管这类风险数目使人难以置信,互联网中的系统很容易受到这种形式的攻击。javascript
原理:在正常的参数提交过程当中添加恶意代码以执行某条指令。html
目标:能够在目标主机上执行任何系统命令java
操做方法:web
右键点击复选框,选择inspect Element
审查网页元素对源代码进行修改,在末尾添加"& netstat -an & ipconfig"
正则表达式
点击view
,能够看到执行指令后的网络端口使用状况和IP地址。攻击成功!
sql
概念:注入数字型数据(如:永真式)达到注入的效果。数据库
原理:在station字段中注入特征字符,组合成新的SQL语句。
如:SELECT * FROM weather_data WHERE station = [station]
浏览器
目标:该例子经过注入SQL字符串查看全部的天气数据。安全
操做方法:服务器
右键点击页面,选择inspect Element
审查网页元素对源代码进行修改,在选中的城市编号Value值中添加or 1=1
显示全部城市的天气状况,攻击成功!(5)
概念:经过在日志文件中插入脚本实现欺骗。
原理:在日志文件中愚弄人的眼睛,攻击者能够利用这种方式清除他们在日志中的痕迹
目标:灰色区域表明在 Web 服务器的日志中的记录的内容,咱们的目的是使用户名为“admin”的用户在日志中显示“成功登陆”
操做方法:
前提:本题目接受用户输入的任何一个用户名,并将其追加到日志文件中。
利用入回车(0D%)和换行符(%0A),在 username 中填入sxx%0d%0aLogin Succeeded for username: admin
概念:经过注入字符串绕过认证
原理:基于如下查询语句构造本身的 SQL 注入字符串。
SELECT * FROM user_data WHERE last_name = '?'
目标基于查询语句构造本身的SQL 注入字符串将全部信用卡信息显示出来。
Injection Flaws
-String SQL Injection
Smith' or 1=1--
'
提早闭合""
,插入永真式1=1
,且--
注释掉后面的内容,这样就能select表里面的全部数据原理:经过注入字符串绕过认证
操做方法:
右键点击页面,选择inspect Element
审查网页元素对源代码进行修改,将password密码框的最大长度限制改成100。
以用户Neville(admit)登陆,输入密码hello' or '1' = '1
获得全部人员列表,攻击成功!
跨站脚本攻击是经过HTML注入劫持用户的浏览器,任意构造用户当前浏览的HTML内容,能够模拟用户当前的操做。这里实验的是一种获取用户名和密码的攻击。
原理:当用户输入非法HTTP响应时容易受到XSS攻击。在XSS的帮助下,能够实现钓鱼工具或向某些官方页面中增长内容。对于受害者来讲很难发现该内容是否存在威胁。
目标:建立一个 form,要求填写用户名和密码。将数据提交到 http://localhost/WebGoat/catche r?PROPERTY=yes&user=catchedUserName&password=catchedPasswordNam
操做方法:
利用XSS能够在已存在的页面中进一步添加元素,包括两部分:
编写一段脚本读取被攻击者在表单上输入的用户名和密码信息,将这些信息发送给捕获这些信息的 WebGoat
编写一个带用户名和密码输入框的表格
原理:跨站请求伪造是一种让受害者加载一个包含网页的图片的一种攻击手段。如:<img src="https://www.mybank.com/me?transferFunds=5000&to=123456"/>
,当受害者的浏览器试图呈现此页面时,它将使用指定的参数向www.mybank.com的“me”端点发出请求。浏览器将请求连接以得到图像,即便它其实是一个资金转移功能。提交请求时,浏览器将添加与站点相关的全部cookie。所以,若是用户对站点进行了身份验证,而且拥有永久或当前会话cookie,那么站点将没法将其与合法的用户请求区分开来。经过这种方式,攻击者可让受害者执行他们不打算执行的操做,好比“购买物品”,或者脆弱网站提供的任何其余功能。
目标:向新闻组发送一封email。这个email包含一个image,其URL指向一个恶意请求。URL应该指向“攻击”servlet,其中包含“屏幕”和“菜单”参数,以及一个额外的参数“transferFunds”,其数值为5000。能够经过在右侧插入的参数中找到“Screen”和“menu”值来构造连接。当通过身份验证的CSRF电子邮件的收件人将被转移他们的资金。
操做方法:
<img src="http://localhost:8080/WebGoat/attack?Screen=267&menu=900&transferFunds=5000" width="1" height="1" />
,以图片的的形式将URL放进Message框,这时的URL对其余用户是不可见的(宽高设置成1像素的目的是隐藏该图片),用户一旦点击图片,就会触发一个CSRF事件,点击Submit
提交