20145230熊佳炜《网络对抗》实验九:web安全基础实践
20145230熊佳炜《网络对抗》实验九:web安全基础实践
webgoat
- webgoat的中文是代罪羔羊的意思,而它是一个有很多漏洞的web应用程序,我们可以利用它来研究关于web应用程序的安全性。
- 在我们的kali虚拟机中输入java -jar webgoat-container-7.0.1-war-exec.jar即可运行我们的webgoat。
- webgoat默认使用的是8080端口,打开火狐浏览器,可以进入到webgoat的主页,我们可以找到自己感兴趣的题目进行练习。
Phishing with XSS
- 首先我们需要在搜索栏中输入攻击代码,输入完毕之后点击search。
- search完毕之后它会要求我们输入用户名和密码。
- 输入完毕之后选择确定就可以成功攻击了。
Stored XSS Attacks
- 我们需要创建一个帖子,然后让它在弹出的窗口中显示出来。
- 在标题栏可以随便输入任何指令,消息那一栏需要写入我们的代码。
- 然后点击我们刚才创建的帖子就会看到弹窗,表面攻击成功。
Reflected XSS Attacks
- 还是感觉和上一个Stored XSS攻击的方法差不多。
- 在access那一栏输入一个攻击代码,点击purchase后,如果弹出我们输入的代码的内容,就表示我们攻击成功了。
Cross Site Request Forgery
- CSRF就是冒名登录,用代码伪造请求。
- 写一个URL诱使其他用户点击,从而触发CSRF攻击。
- 还是通过在消息栏输入攻击代码,然后用户点击后会显示我们已经攻击成功了。
CSRF Prompt By-Pass
- 这个和上一个题目攻击方法也是相对比较类似的,但在消息栏输入我们的攻击代码并不能成功。
- 所以只能通过浏览器输入,输入后会看到confirm选项,点击它。
- 最后刷新一下网页,会发现我们已经成功转账。
String SQL Injection
- 这个题目相对来说极其简单,就是我们在web基础里面SQL也用到的' or 1=1 --'这个式子,因为这个式子是一个永真式,所以输入完后点击go,会发现会显示出所有的结果。
LAB:SQL Injection(Stage 1:String SQL Injection)
- 这个题目原理还是要求我们利用' or 1=1 --'这个永真式,但是没有上一题那样简单。
- 这一题我们登陆密码换成了1=1也无济于事,因为网页源码中限制了密码最大长度。
- 我们通过查看网页源码,将最大密码长度修改之后,再登录,便会发现我们成功。
Database Backdoors
- 这是一个关于修改后台数据的一道题目。
- 我们先输入101可以查看到larry的信息,然后我们可以通过攻击代码修改larry的工资信息。
- 在username那我们还可以新建一个后门,将自己的用户名和邮箱应用于数据库中所有用户,这就表明攻击成功。
Log Spoofing
- 这个题目其实顾名思义,就是登陆欺骗用户。
- 原理就是我们输入错误的用户名后,它返回给我们的信息还是我们登陆成功。也就是我们要在用户名那写一个SQL的字符串。
Command Injection
- 这个界面可以执行系统命令并返回给用户。
- 所以我们可以用BurpSuite拦截到一个请求,然后修改其中的参数。最后我们在网页中可以看到修改过后要我们显示的结果。
感受
- 不知道为什么,做这次最后一次实验的时候电脑会出奇的卡,写了很久的东西,眼看快要完成了,电脑莫名其妙的未响应,一天连续出现了好几次。反正很烦,甚至想砸电脑,可能是天气太热了,电脑可能温度太高了吧。自己大概了解了关于SQL和XSS攻击的一些套路吧,但感觉要想更加深入了解,需要自己花很多功夫,不是模仿其他人做几道练习就能成功的。希望自己能控制好自己的情绪,努力学习吧。
基础问答
1.实验后回答问题
(1)SQL注入攻击原理,如何防御
答:
原理:就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
防御: 普通用户与系统管理员用户的权限要有严格的区分, 要强迫使用参数化语句,加强对用户输入的验证,多多使用SQL Server数据库自带的安全参数,必要的情况下使用专业的漏洞扫描工具来寻找可能被攻击的点。
(2)XSS攻击的原理,如何防御
答:
原理:XSS是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这类攻击通常包含了HTML以及用户端脚本语言。
防御:对用户输入数据进行输入检查,也要进行输出检查,对用户输入的html 标签及标签属性做白名单过滤,也可以对一些存在漏洞的标签和属性进行专门过滤。
(3)CSRF攻击原理,如何防御
答:
原理:CSRF通过伪装来自受信任用户的请求来利用受信任的网站。
防御:将持久化的授权方法切换为瞬时的授权方法,在form中包含秘密信息、用户指定的代号作为cookie之外的验证。