20145229吴姗姗web安全基础实践
基础与实践
基础问题
(1)SQL注入攻击原理,如何防御
- SQL注入就是把SQL语句插入到之前已经定义好的语句中,作为网页中的比如用户名输入来达到攻击的目的,以此达到欺骗服务器最后执行恶意SQL的目的
- 防御:去除代码中的敏感信息;采用字符串过滤的方法;限制SQL字符串连接的配置文件
(2)XSS攻击的原理,如何防御
- XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如同源策略(same origin policy)。这种类型的漏洞由于被骇客用来编写危害性更大的phishing攻击而变得广为人知
- 防御:不能在页面中插入任何不可信数据,除非这些数已经据根据下面几个原则进行了编码;在将不可信数据插入到HTML属性里时,对这些数据进行HTML属性编码
(3)CSRF攻击原理,如何防御
- CSRF攻击主要是由攻击者在网页中植入恶意代码或连接,当受害人的浏览器执行恶意代码或者受害人点击连接后,攻击者就可以访问受害人身份验证后的网络应用。
- 防御:验证 HTTP Referer 字段;在请求地址中添加 token 并验证;在 HTTP 头中自定义属性并验证。
实验体会
- 这次的实验挺有趣的,能学到很多东西,这些套路深得人心,不过也再一次证明了任何东西都不是不可攻破的,我们要对自己平时上网的网络行为时刻小心谨慎,不能误入黑手!
实践
-
kali中输入java -jar webgoat-container-7.0.1-war-exec.jar,开启webgoat
-
在火狐浏览器中输入localhost:8080/WebGoat,进入webgoat,密码用户名默认就可以
-
XSS攻击
(1)Phishing with XSS -
编写代码注入输入框中,会显示处网页,然后输入自己的用户名和密码,就会弹出,截获!
(2)Stored XSS Attacks
- 在message里面输入,然后title随便输一个,进行提交,再点击刚刚的title,成功!!
(3)Reflected XSS Attacks
-
首先我们可以在用户名里面随便输入巴拉巴拉,然后界面会显示你输入的东西有错
-
这里我们输入指定的带有攻击性的url,,完成如下
(4)Cross Site Request Forgery(CSRF)
-
在message里输入,这里的screen以及menu取决于你自己的电脑,往下滑可以看到pramenters
-
成功后会显示如图,点击消息,会显示转走用户4000元
(5)CSRF Prompt By-Pass
- 与上一个实验类似,添加了请求确认,所以需要两个iframe模块,在message里输入以下,menu以及screen同样在页面最底
-
成功如图
-
成功小勾勾
-
SQL
(1)Numeric SQL Injection -
这个需要配置fb,配置过程就不再赘述了
-
前面设置好后随便选择一项,go,然后回到软件,发现截获了新的包,右键send to repeter,添加1=1,完成!
(2)Database Backdoors
- 输入33; update employee set salary=70000,修改一下工资呗
- 留一个邮箱,把工资都发到自己设置的邮箱里面
(3)Blind Numeric SQL Injection
-
这里我们可以用盲注进行爆破,还是需要用到BP,输入101 AND ((SELECT pin FROM pins WHERE cc_number='1111222233334444') > 10000 );,然后用BP拦截,snifer模式
-
由于报文长度从2364开始改变,所以试一试2364
(4)Log Spoofing
- 利用换行符伪造日志
(5)String SQL Injection
-
这个在上一次实验有做过,利用永真式,'or 1='1,直接登录
-
完成的小勾勾