常见地web安全系统性测试点Word文档下载推荐.docx
- 文档编号:21214483
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:9
- 大小:21.31KB
常见地web安全系统性测试点Word文档下载推荐.docx
《常见地web安全系统性测试点Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《常见地web安全系统性测试点Word文档下载推荐.docx(9页珍藏版)》请在冰豆网上搜索。
2.CSRF与跨站脚本(XSS)
CSRF与跨站脚本(XSS),是指请求迫使某个登录的浏览器向易受攻击的Web应用发送一个请求,然后以受害者的名义,为入侵者的利益进展所选择的行动。
同个浏览器打开两个页面,一个页面权限失效后,另一个页面是否可操作成功
使用工具发送请求,在请求头中不参加referer字段,检验返回消息的应答,应该重新定位到错误界面或者登陆界面。
修改建议:
在不同的会话中两次发送同一请求并且收到一样的响应。
这显示没有任何参数是动态的〔会话标识仅在cookie中发送〕,因此应用程序易受到此问题攻击。
因此解决的方法为
1.CookieHashing(所有表单都包含同一个伪随机值):
2.
验证码
3.One‐TimeTokens(不同的表单包含一个不同的伪随机值)客户端保护措施:
应用防止
CSRF攻击的工具或插件。
SQL注入是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
在需要进展查询的页面,输入正确查询条件and1=1等简单sql语句,查看应答结果,如与输入正确查询条件返回结果一致,明确应用程序对用户输入未进展过滤,可以初步判断此处存在SQL注入漏洞
对用户的输入进展校验,可以通过正如此表达式,或限制长度;
对以下关键字进展转换等;
|<
|<
|alert|and|exec|execute|insert|select|delete|update|count|drop|chr|mid|master|truncate|declare|sitename|netuser|xp_cmdshell|or|+|,|like'
|and|exec|execute|insert|create|drop|table|from|grant|group_concat|column_name|information_schema.columns|table_schema|union|where|select|delete|update|order|by|count|chr|mid|master|truncate|declare|or|--|+|,|like|//
不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进展数据查询存取;
不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接;
应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进展包装。
暴力破解是目前最直接有效的攻击方式,特别对于金融业务来说,很多情况下口令都为6位纯数字,很容易被攻击。
本测试项在于检查认证系统对暴力破解的防护性。
测试方法:
启动抓包工具,同时打开浏览器输入用户登录页面,输入用户名、密码以与验证码,进展登录,如果在抓包中存在明文的用户名和密码,说明存在弱点。
将请求方式从方式修改为S方式或者对输入的用户名和密码进展加密,在服务端对密码进展验证
开发版本的Web程序所带有的注释在发布版本中没有被去掉,而导致一些敏感信息的泄漏。
我们要查看客户端能看到的页面源代码并发现此类安全隐患。
测试方法:
打开登陆页面(或者待测试页面),点击浏览器,查看源代码,检查源代码注释局部是否有敏感信息泄露,敏感信息包括以下内容:
字段文字描述、内网IP地址、SQL语句以与物理路径等等。
修改建议:
请勿在HTML
注释中遗留任何重要信息〔如文件名或文件路径〕。
从生产站点注释中除去以前〔或未来〕站点的跟踪信息。
防止在HTML
注释中放置敏感信息。
确保HTML
注释不包括源代码片段。
4.3用户名破解
为了进展暴力破解,攻击者需要知道已存在的用户名,再对该用户名进展攻击。
在登录界面输入不存在的用户名和任意的口令,如果提示用户名不存在,如此说明存在漏洞;
使用正确的用户名和错误的口令进展登录,如果提示口令或密码错误,如此说明存在漏洞。
服务器对所有的登陆错误原因进展统一的应答,不会提示准确的错误提示信息。
连续输错密码
在缺少锁定策略和验证码设计有问题的情况下,攻击者可以通过枚举的方式来进展暴力猜解。
在登录页面,输入正确的用户名、错误的口令以与正确的验证码,提交表单,重复10次,如果系统没有返回类似账号锁定的信息,如此说明存在漏洞。
在用户进展错误登录次数达到系统配置后,需要对该账号或者该IP进展临时锁定,到达解锁条件后再进展解锁。
查看是否有验证码机制,以与验证码机制是否完善,防止使用自动化工具重复登录和进展业务操作。
打开登陆页面查看是否存在验证码,如果不存在说明存在漏洞。
输入正确的用户名和口令以与错误的验证码,如果只是提示验证码错误,如此说明存在漏洞。
选择验证码,点击右键,验证码是图片形式且在一X图片中,如果不是,如此说明存在漏洞。
观察验证码图片中背景是否存在无规律的点或线条,如果背景为纯色〔例如只有白色〕说明存在漏洞。
将验证码生成放在在一X进展了混淆处理的图片上。
修改密码是否需要输入旧口令
进入系统的口令修改界面,查看是否必须输入旧口令,如果不需要如此存在漏洞。
用户修改密码时必须提供旧密码,且新密码不能与旧密码一样,密码要有一定复杂度,参见口令规如此建议。
4.7默认账户名称设置
一般系统均设有默认登录用户,以与超级管理员账号,如登录账号过于简单将易被破解,造成超级权限泄露。
上线系统去除超级管理员权限用户,或增加超级管理员登录名复杂度,不要设置成易猜想的admin、superadmin等名称。
4.8错误的页面信息
404、500等错误或警告消息,可能会泄露敏感信息。
捕获异常跳转至统一错误页面,防止对外泄漏详细错误信息。
查看登录成功后会话标识是否变更。
如果未变更,那么攻击者就可以通过一些手段〔如构造URL〕为受害着确定一个会话标识,当受害者登录成功后,攻击者也可以利用这个
会话标识冒充受害者访问系统。
启动抓包工具或浏览器自带开发者模式打开登录页面,输入正确的用户名、口令以与验证码,进展登录,登录后,进展任意一项业务操作。
如果登录的SessionId和进展业务的SessionId没有变化,如此说明存在漏洞。
对每次请求都从上次请求获得令牌,服务端对每次交互都进展验证
查看是否存在浏览器窗口闲置超时后需重新登录的机制
打开登录界面,输入正确的用户名和口令,进展登录,进展一项业务操作,将浏览器空闲超过30分钟,在进展其他业务操作,如果能够进展其他业务操作,如此说明存在漏洞。
需要在后台进展配置Session的超时时间。
用户注销后会话信息需要去除,否如此会导致用户在点击注销按钮之后还能继续访问注销之前才能访问的页面。
进入登录页面,输入正确的用户名和密码,登录成功后,进展一些业务操作,点击注销按钮,在浏览器输入地址,输入上面进展业务操作的地址,如果能够正常返回业务页面,如此说明存在漏洞。
在用户注销后,必须将用户的Session信息以与缓存信息全部清空。
6其他
目录列表能够造成信息泄漏,而且对于攻击者而言是非常容易进展的。
所以在测试过程中,要注意目录列表漏洞。
通过浏览器访问web服务器上的所有目录,检查是否返回目录结构,如果显示的是目录结构,如此可能存在安全问题;
或使用DirBuster软件进展测试;
1.针对每个Directory域都使用Allow、Deny等指令设置,严格设定WEB服务器的目录访问权限;
2.删除Options指令下的Indexes设置项;
文件上传漏洞通常由于网页代码中的文件上传路径变量过滤不严造成的,如果文件上传功能实现代码没有严格限制用户上传的文件后缀以与文件类型,攻击者可通过Web访问的目录上传任意文件,包括后门文件〔webshell〕,进而远程控制服务器。
严格限制和校验上传的文件类型、大小等,禁止上传恶意代码的文件。
同时限制相关目录的执行权限,防Xwebshell攻击。
请求方法测试
有些Web服务器默认情况下开放了一些不必要的方法〔如DELETE、PUT、TRACE、MOVE、COPY〕,这样就增加了受攻击面。
使用SoapUI等工具,发送除get、post以外的方法请求,如接收应答为200ok,代表启用了不必要的方法。
在tomcat
web.xml中增加如下内容:
<
security-constraint>
web-resource-collection>
<
url-pattern>
/*<
/url-pattern>
-method>
PUT<
/-method>
DELETE<
HEAD<
OPTIONS<
TRACE<
/web-resource-collection>
auth-constraint>
/auth-constraint>
/security-constraint>
login-config>
auth-method>
BASIC<
/auth-method>
/login-config>
6.4服务器安全策略
运行Web服务器的操作系统账号权限越高,那么Web遭到攻击产生的危害就越大。
部署到生产环境运行时是不能用root等最高权限的,一切都给予以最小权限。
网络上被攻陷的大多数主机,是黑客用扫描工具大X围进展扫描而被瞄准上的。
所以,为了防止被扫描到,除了必要的端口,例如Web、FTP、SSH等,其他的都应关闭。
如:
关闭icmp端口,并设置规如此,丢弃icmp包。
这样他人无法Ping到服务器,服务器安全得到提升。
修改方法:
丢弃icmp包可在iptables中,参加一条语句:
-AINPUT-picmp-jDROP
默认的SSH端口是22。
建议改成10000以上。
这样别人扫描到端口的机率也大大下降。
举例修改方法:
#编辑/etc/ssh/ssh_configvi/etc/ssh/ssh_config#在Host*下,参加新的Port值。
以18439为例〔下同〕:
Port22Port18439
#编辑/etc/ssh/sshd_configvi/etc/ssh/sshd_config#参加新的Port值Port22Port18439#保存后,重启SSH服务:
servicesshdrestart
测试新端口连接正常后,删除Port22的配置。
同时从iptables中,删除22端口,添加新配置的18439,并重启iptables。
如能以固定IP方式连接服务器,那么,可以设置只允许某个特定的IP登录服务器。
设置如下:
5.使用证书登录SSH
相对于使用密码登录来说,使用证书更为安全,具体方法可参见网络资料。
6.5口令规如此建议
规如此1:
口令长度的取值X围为:
0‐
个字符;
口令的最短长度和最长长度可配置;
口令的最短长度建议默认为6个字符。
规如此2:
口令中至少需要包括一个大写字母〔A‐Z〕、一个小写字母〔a‐z〕、一个数字字符〔0‐9〕;
口令是否包含特殊字符要求可以配置。
规如此3:
口令中允许同一字符连续出现的最大次数可配置,取值X围:
0‐9,当取值为
0
时,表示无限制,建议默认为
3。
规如此4:
口令须设置有效期,最短有效期的取值X围:
0‐9999
分钟,当取值为0时,表示不做限制,建议默认:
5
分钟;
最长有效期的取值X围:
0‐999天,当取值为
时,表示口令永久有效,建议默认:
90
天。
规如此5:
在口令到期前,当用户登录时系统须进展提示,提前提示的天数可配置,取值X围:
1‐99天,建议默认:
7
规如此6:
口令到达最长有效期后,用户再次登录成功但在进入系统前,系统强制更改口令,直至更改成功。
规如此7:
口令历史记录数可配置,取值X围为:
0‐;
建议默认:
3个。
—
规如此8:
管理员/操作员/最终用户修改自己的口令时,必须提供旧口令。
规如此9:
初始口令为系统提供的默认口令、或者是由管理员设定时,如此在用户/操作员使用初始口令成功登录后,要强制用户/操作员更改初始口令,直至更改成功。
规如此10:
口令不能以明文的形式在界面上显示。
规如此11:
口令不能以明文的形式保存,须加密保存;
口令与用户名关联加密,即加密前的数据不仅包括口令,还包括用户名。
规如此12:
只有当用户通过认证之后才可以修改口令。
规如此13:
修改口令的某某只能从服务器端的会话信息中获取,而不能由客户端指定。
6.6
页面输入项校验建议
对输入参数进展处理,建议过滤出所有以下字符:
[1]|〔竖线符号〕
[2]&
〔&
符号〕
[3];
〔分号〕
[4]$〔美元符号〕
[5]%〔百分比符号〕
[6]〔at符号〕
[7]'
〔单引号〕
[8]"
〔引号〕
[9]\'
〔反斜杠转义单引号〕
[10]\"
〔反斜杠转义引号〕
[11]<
>
〔尖括号〕
[12]()〔括号〕
[13]+〔加号〕
[14]CR〔回车符,ASCII0x0d〕
[15]LF〔换行,ASCII0x0a〕
[16],〔逗号〕
[17]\〔反斜杠〕
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 常见 web 安全 系统性 测试