Exp9 Web安全基础
Exp9 Web安全基础
9.1 基础问题回答
(1)SQL注入攻击原理,如何防御
- SQL注入攻击是通过构建含有特殊SQL语法的一些组合的输入作为参数传入Web应用程序,通过输入中合法的SQL语句而执行攻击者所要执行的操作。
- 由于输入大多有规范格式,因此我们在执行sql语句前可以先检查输入的合法性。同时也可以对特殊字符以及固定的一些常用sql语句进行过滤。
(2)XSS攻击的原理,如何防御
- 简单来说就是一种利用了网站安全漏洞的攻击。攻击者往Web里插入恶意html标签或者javascript代码,使用户浏览该页或者进行操作时,利用用户对已网站的信任,利用这一漏洞来执行一些具有安全风险的操作导致用户信息的泄露。
- 提交表单或url参数传递之前,要设置过滤规则,检查输入的内容中是否有非法内容,如脚本
(3)CSRF攻击原理,如何防御
- 在用户已经打开的网页后,攻击者在得知用户后通过xss攻击将脚本注入服务器中,然后脚本通过用户cookie来借用用户的身份,向服务器发送请求,执行各种不法操作。
- 限制Cookie的适用范围,避免使用用户信息明文传输的网站以及网页表单方法不应为单一的post
9.2 实验内容
9.2.1 安装webgoat
- 从网上下载webgoat的jar包,丢到kali中
- 使用java -jar webgoat-container-7.0.1-war-exec.jar
或java -jar webgoat-server-8.0.0.M25.jar解压
- 这里出现的问题是我装了7.0.1版本后发现没有题目,然后我就下载了最新版的8.0.0.M25
- 然后我们网址中输入http://127.0.0.1:8080/WebGoat后进入到登陆界面中
- 这里是可以直接注册,然后登陆
开始做题!
9.2.2 SQL注入
String SQL injection
Numeric SQL injection
Compromising confidentiality with String SQL injection
- 另外一个注入应用,同时也涉及到了判断哪个可以用来注入
Blind SQL injection
- 这里遇到了很大的困难,经过尝试发现突破点在注册界面
- 从注册界面中进行了多次测试,发现在注册用户名上存在注入点
- 然后在定位了用户名后,这里用来burpsuit来抓取包来辅助分析与破解
- 最后我们成功得到了该用户的信息,登陆成功
9.2.3 xss攻击
- 在自己的最新webgoat中发现有好多题目都没有,于是还是乖乖拷贝虚拟机,不过有的还是做了。
Phishing with XSS
- 向请求凭据的对象插入HTML中,然后添加javascript以实际收集凭据
Reflected XSS Attacks
- XSS反射攻击,通过引诱用户点击一个链接到目标网站的恶意链接来实施攻击
- 这里是在两个平台上做的两道反射攻击的题
- 攻击结果如图
9.2.4 CSRF攻击
Cross Site Request Forgery(CSRF)
- CSRF攻击时通过伪装来自受信任用户,利用用户受信任的网站向其发送请求。
- 攻击结果如图