Exp9 Web安全基础

3实验过程

3.1登录与注册

1.登录webgoat,点击Register new user

2.注册新用户,Username=besti2015,Password=123456,选择Agree with the terms and conditions ,点击Sign up

3.回到登录页面,输入用户名密码,sign in

4.看一下WebGoat的介绍,学习使用方法,就可以开始本次实验了。

3,2Injection Flaws

1.这个就是通过select语句的漏洞进行sql注入

2.他教给我们的关键信息如下,

3.出的第一道题目是这样的

4.我们直接用他给的那个注入语句 ' or 1=1 --

5.注入成功


6.第二题是这样的

7我们用这个注入 1234567 or 1=1

8.注入成功

3.3SQL Injection (advanced)

1.goals

2.关键信息

3.题目

4.随意输入一个用户查询其相关信息,可以发现这个表里有7个参数。

5.输入 Smith' union select null,null,null,null,null,null,null from user_system_data -- 联合查询判断数据回显列位置。

6.输入 就能获取所有用户的密码。

基础问题回答

1. SQL注入攻击原理,如何防御?

  • 原理:SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,使非法数据侵入系统。
  • 防御:

1.对用户的输入进行校验,可以通过正则表达式,双"-"进行转换等。

2.不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。

3.不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。

4.不要把机密信息直接存放,加密或者hash掉密码和敏感的信息。

5.应用的异常信息应该给出尽可能少的提示。

6.采取辅助软件或网站平台来检测sql注入。

2 XSS攻击的原理,如何防御?

  • 原理:XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码(如,HTML代码和客户端脚本)植入到提供给其它用户使用的页面中,攻击者可以利用XSS漏洞旁路掉访问控制。

  • 防御:

1.特征匹配方式,在所有提交的信息中都进行匹配检查,一般会对“javascript”这个关键字进行检索,一旦发现提交信息中包含“javascript”,就认定为XSS攻击。

2.对所有用户提交内容进行可靠的输入验证,包括对URL、查询关键字、HTTP头、POST数据等,仅接受指定长度范围内、采用适当格式、采用所预期的字符的内容提交,对其他的一律过滤。

3.实现Session标记(session tokens)、CAPTCHA系统或者HTTP引用头检查,以防功能被第三方网站所执行。

CSRF攻击原理,如何防御?

  • 原理:CSRF跨站请求伪造,也被称为“oneclickattack”或者sessionriding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用,通过伪装来自受信任用户的请求来利用受信任的网站。是一种依赖web浏览器的、被混淆过的代理人攻击。

  • 防御:

1.在form中包含秘密信息、用户指定的代号作为cookie之外的验证。

2.“双提交”cookie。某个授权的cookie在form post之前正被JavaScript代码读取,那么限制跨域规则将被应用。服务器需要在Post请求体或者URL中包含授权cookie的请求,那么这个请求必须来自于受信任的域。

3.用户在浏览其它站点前登出站点或者在浏览器会话结束后清理浏览器的cookie。

posted @ 2018-05-27 17:01  besti5332  阅读(179)  评论(0编辑  收藏  举报