可锐资源网

技术资源分享平台,提供编程学习、网站建设、脚本开发教程

涨薪技术|接口安全性测试之SQL注入、XSS攻击、CRSF、防刷技术

SQL注入是发生在应用程序数据库层的安全漏洞。简而言之,是在输入的文本中注入SQL指令,在设计不良的程序当中忽略了检查,那么这些注入进去的指令就会被数据库服务器误认为是正常的SQL指令而执行,因此遭到破坏。

1 DVWA环境搭建

DVWA-1.0.7.zip
http://IP:Port/dvwa/login.php。默认用户名 admin, 默认
密码 password


2 SQL注入类型

1. 数字型注入

http://www.test.com/msg/test.php?myno=1'
http://www.test.com/msg/test.php?myno=1 or 1=1
http://www.test.com /msg/test.php?myno=1 and 1=2
http://www.test.com/msg/test/php?myno=1 or
'abc'='ab'||'c'

2. 字符串注入

http://www.test.com/msg/test.php?mychar=aaaa'
http://www.test.com/msg/test.php?mychar=aaaa' or
'1'='1
http://www.test.com /msg/test.php?mychar=aaaa' and
'1'='2
http://www.test.com/msg/test/php?mychar=aaaa' or
'abc'='ab'||'c

3. 终止式SQL注入

SQL注入防范

  • 使用绑定变量
  • 使用存储过程
  • 检查数据类型
  • 使用安全函数
  • ESAPI.encoder().encodeForSQL
OWASP防御方案,服务端输入校验和输出编码
规则一:进入HTML标签
HTML编码,& -> &
ESAPI.encoder().encodeForHTML
规则二:进入HTML属性值
value,width,height等,编码单引号和双引号为&#xHH
ESAPI.encoder().encodeForAttribute
规则三:进入JavaScript中
ESAPI.encoder().encodeForJavaScript
规则四:进入CSS中
ESAPI.encoder().encodeForCSS
规则五:进入URL
对特殊字符采用%HH编码
ESAPI.encoder.encodeForURL


3 什么是XSS

XSS跨站脚本攻击是指恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入的Script代码会被执行,从而达到恶意攻击用户的目的。


4 XSS类型

1. 反射式XSS

反射型 XSS 一般是攻击者通过特定手法(如电子邮件),诱使用户去
访问一个包含恶意代码的 URL,当受害者点击这些专门设计的链接的时
候,恶意代码会直接在受害者主机上的浏览器执行。反射型XSS通常出
现在网站的搜索栏、用户登录口等地方,常用来窃取客户端 Cookies
或进行钓鱼欺骗。

2. 存储式XSS

也叫持久型XSS,主要将XSS代码提交存储在服务器端(数据库,内
存,文件系统等),下次请求目标页面时不用再提交XSS代码。当目标
用户访问该页面获取数据时,XSS代码会从服务器解析之后加载出来,
返回到浏览器做正常的HTML和JS解析执行,XSS攻击就发生了。存储型
XSS 一般出现在网站留言、评论、博客日志等交互处,恶意脚本存储到
客户端或者服务端的数据库中。

3. DOM-based 型XSS

基于 DOM 的 XSS 攻击是指通过恶意脚本修改页面的 DOM 结构,是
纯粹发生在客户端的攻击。DOM 型 XSS 攻击中,取出和执行恶意代码
由浏览器端完成,属于前端 JavaScript 自身的安全漏洞。


5 XSS防御

1.HTTP响应的X-首部
X-Frame-Options:DENY 禁止加载frame,SAMEORGIN 仅允
许加载同域frame
X-XSS-Protection:0禁止,1默认,1;mode=block强制不渲
染
X-Content-Sercurity-Policy:(CSP策略)
2.域分离策略
子域与父域分离,减少风险
3.安全传输
HTTPS
4.安全cookie
设置cookie属性HttpOnly
5.验证码
可以减少非法操作和防止CSRF
6.慎防第三方内容