一、实践目标
实践对象
- Kali Linux
实践内容
- Webgoat实践下相关实验
- 理解常用网络攻击技术的基本原理
实践要求
- 包括(SQL,XSS,CSRF)不少于7个题目
二、实践步骤
任务一:WebGoat
-
下载webgoat-container-7.0.1-war-exec.jar文件
-
因WebGoat默认使用8080端口,所以开启前先用
netstat -tupln | grep 8080
查看端口是否被占用,如果被占用,用kill 进程号
终止占用8080端口的进程 -
普通安装,需要在含有
webgoat-container-7.0.1-war-exec.jar
文件的目录下执行java -jar webgoat-container-7.0.1-war-exec.jar
-
浏览器打开WebGoat,输入
http://localhost:8080/WebGoat
进入WebGoat登录界面 -
用默认用户名密码登录
任务二:SQL注入攻击(Injection Flaws)
命令注入(Command Injection)
-
右键点击页面,选择
inspect Element
审查网页元素对源代码进行修改 -
在复选框中任意一栏的代码,右键单击后,选择
Edit At Html
进行修改,添加"&&ifconfig"
-
点击
view
,可以看到执行指令后的网络端口使用情况和IP地址,攻击成功
数字型注入(Numeric SQL Injection)
-
右键点击页面,选择
inspect Element
审查网页元素对源代码进行修改 -
在选中的城市编号Value值中添加
or 1=1
-
显示所有城市的天气情况,攻击成功
日志欺骗(Log Spoofing)
-
在 username 中填入
Zyh%0d%0aLogin Succeeded for username: admin
,密码随意,可以看到登陆成功 -
这种漏洞可以被攻击者利用以添加恶意脚本,脚本的返回信息管理员能够通过浏览器看到
字符串注入(String SQL Injection)
- 姓名框输入
Smith‘ or 1=1--
,执行后可以看到所有人的卡号等信息
数据库后门Database Backdoors
-
输入101查看现有的信息
-
使用
101; update employee set salary=100000
,执行两条语句,第一条用于查看信息,后面的update则将薪水更新为100000 -
使用
101;CREATE TRIGGER myBackDoor BEFORE INSERT ON employee FOR EACH ROW BEGIN UPDATE employee SET email=‘20175322@hackme.com‘WHERE userid = NEW.userid
在每行插入前修改邮箱为指定邮箱
任务三:XSS攻击
XSS 钓鱼(Phishing with XSS)
-
编写好表单代码,在搜索框输入代码,页面增加一个表单
-
输入用户名和密码信息,攻击者就可以通过WebGoat获取这些信息
存储型XSS攻击(Stored XSS Attacks)
- title中随意输入,留言板中输入
<script>alert("I‘m 20175322!");</script>
- 下方
Message List
中会新增刚输入的Tile
名字的链接,点击链接
反射型XSS攻击(Reflected XSS Attacks)
- 输入
<script>alert(" 20175322!");</script>
,之后提交
任务四:CSRF攻击
跨站请求伪造(Cross Site Request Forgery (CSRF))
- 根据自己参数的实际情况,在message中使用
<img src="http://localhost:8080/WebGoat/attack?Screen=321&menu=900&transferFunds=5000" width="1" height="1" />
- 点击该消息,当前页面就会下载这个消息并显示出来,转走用户的5000元
绕过 CSRF 确认( CSRF Prompt By‐Pass)
- 根据自己参数的实际情况,在message中使用
<iframe src="attack?Screen=329&menu=900&transferFunds=1000"> </iframe>
<iframe src="attack?Screen=329&menu=900&transferFunds=CONFIRM"> </iframe>
- 点击Submit提交,攻击成功