什么是XSS
XSS 又叫CSS(Cross site Scripting)跨站脚本工具,常见的WEB漏洞之一,再2013年度OWASP TOP 10 中排名第三
XSS 是指攻击者再网页中嵌入客户端脚本,通常是JS恶意代码,当用户使用浏览器访问被嵌入恶意代码网页时,就会再用户浏览
器上执行。
XSS有什么危害
网络钓鱼,窃取用户Cookise,弹广告刷流量,具备改页面信息,删除文章,获取客户端信息,传播蠕虫
XSS的三种类型
反射型,存储型,Dom型
反射型
又称非持久型XSS,最容易出现的一种XSS漏洞
主要用于将恶意脚本附加到URL 地址的参数中,只有当受害者点击这些链接的时候,才会触发恶意JS脚本,特点是只有在用户单
击时触发,而且只执行一次。
存储型XSS
在网站上的留言板或者评论处,存放了XSS恶意代码,当用户点击留言板或者评论处,即可触发反射型XSS反馈给攻击者,即可拿
到用户的信息
DOM Base XSS
Dom型XSS并不需要服务器解析响应的直接参与触发XSS靠的是浏览器DOM 解析
DOM 型就是JavaScript 中的Document对象HTML 注入。直接浏览器处理
常见的XSS防护方法
加CDN 防护, 代码层过滤,数据库层过滤,自己搭建防火墙,还可以开启 HttpOnly 或则 CSP 策略来防护XSS的攻击
文件上传
什么是文件上传
Web 应用程序通常会有文件上传功能,发布图片,招聘网站上发布DOC格式简历,只要web应用程序允许上传就有可能存在文件上传漏洞
文件上传的校验流程
上传文件, Http POST请求(上传文件),传给WEB服务器,
服务端开始验证检测,判断是否是正常文件,检测后缀,检测内容,判断逻辑
检测不通过直接拉入黑名单。
推荐一个测试上传的web
https://GitHub.com/cOnly1/upload-labs
客户端验证 (其实作用不大)
MIME验证
MIME type的缩写为(Multipurpose Internet Mail Extensions)代表互联网媒体类型(Internet media type),MIME使用一个
简单的字符串组成,最初是为了标识邮件Email附件的类型,在html文件中可以使用content-type属性表示,描述了文件类型的
互联网标准。
MIME主类别:
text:用于标准化地表示的文本信息,文本消息可以是多种字符集和或者多种格式的;
Multipart:用于连接消息体的多个部分构成一个消息,这些部分可以是不同类型的数据;
Application:用于传输应用程序数据或者二进制数据;
Message:用于包装一个E-mail消息;
Image:用于传输静态图片数据;
Audio:用于传输音频或者音声数据;
Video:用于传输动态影像数据,可以是与音频编辑在一起的视频数据格式。
MIME验证
如何防护
1. 严格管控上传目录的权限,去掉执行权限,
2. 通过一些开源软件来检测文件。
3. 建立防火墙,开启过滤
命令执行
什么是命令执行
命令执行漏洞是指攻击者可以随意执行系统命令。属于高危漏洞之一任何脚本语言都可以调用操作系统命令
应用有时需要调用一些执行系统命令的函数,如PHP中的system、exec、shell、popen、proc_popen等,当用户能控制这些函数
中的参数时,就可以见恶意系统命令
拼接到正常名字,从而造成命令执行攻击,这急速命令执行漏洞
图示: