XSS
XSS又叫CSS(Cross Site Scripting),跨站脚本攻击,常见的Web漏洞之一,在2013年度OWASP TOP 10中排名第三。
XSS是指攻击者在网页中嵌入客户端脚本,通常是JS恶意代码,当用户使用浏览器访问被嵌入恶意代码网页时,就会在用户浏览器上执行。
XSS的危害
网络钓鱼、窃取用户Cookies、弹广告刷流量、具备改页面信息、删除文章、获取客户端信息、传播蠕虫
XSS类型
1)反射型
又称为非持久性XSS,最容易出现的一种XSS漏洞,通常是一次性触发的。主要用于将恶意脚本附加到URL地址的参数上。受害者点击链接就会触发恶意js脚本。例如恶意邮件
2)存储型
攻击者把恶意js脚本存储到网站的数据库中,当受害者点击网站就会自动触发脚本。一般恶意脚本存放在论坛,留言板上
3)Dom Base XSS
DOM型就是JavaScript中的Document对象HTML注入,直接浏览器处理。
DOM型XSS并不需要服务器解析响应的直接参与触发XSS靠的是浏览器DOM解析
防护
HttpOnly https://www.cnblogs.com/softidea/p/6040260.html
CSP https://blog.csdn.net/qq_37943295/article/details/79978761
文件上传
Web应用程序通常会有文件上传功能,发布图片、招聘网站上发布doc格式简历,只要web应用程序允许上传就有可能存在文件上传漏洞。
文件上传流程
文件上传一般会在客户端进行后缀名的验证 ,在客户端会进行文件类型的验证,文件内容的验证
绕过客户端的验证
文件上传的漏洞环境 https://github.com/c0ny1/upload-labs
这里上传一个一句话木马后缀名.jpg的文件1
2vim test.jpg
<?php @eval($_POST['a']; ?>
把文件上传到网站的同事使用BurpSuite抓包并更改包的文件后缀名
绕过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:用于传输动态影像数据,可以是与音频编辑在一起的视频数据格式。
简单的说就是服务端对文件类型的验证。
方法和上面一样
防护
对上传目录的权限执行设置 chmod -x dir
命令执行
命令执行漏洞是指攻击者可以随意执行系统命令,通过脚本语言中的函数来调用操作系统命令。是脚本语言没有对输入的参数进行过滤而产生的。属于高危漏洞之一。
应用有时需要调用一些执行系统命令的函数,如PHP中的system、exec、shell_exec、passthru、popen、proc_popen等,当用户能控制这些函数中的参数时,就可以将恶意系统命令
拼接到正常命令中,从而造成命令执行攻击,这就是命令执行漏洞。
上面代码中 变量target 是用来接受用户输入的ip地址,但用户可以通过 | &&来执行其他命令 例如 127.0.0.1 && uname -a