xss漏洞原理和分类及依据
xss(cross-site scripting)跨站脚本攻击 原理:攻击者通过某种方式,将恶意的前端代码(通常是JavaScript)注入到目标网页中,并由受害者的浏览器成功执行。 分类和依据: 反射型XSS:恶意脚本并未存储在服务器上,而是通过URL参数直接“反射”给受害者。 存储型XSS:恶意脚本存储在服务器上,用户每次访问都会执行脚本。 DOM型XSS:客户端的javascript不安全的操作了DOM,导致了恶意代码的执行。
安装BlueLotus和beef-xss平台对xss漏洞进行利用
BlueLotus
安装BLueLotus
生成payload后插入
接收面板接收信息
beef-xss
安装beef-xss:sudo apt install beef-xss
启动:beef-xss
访问:http://yourip:3000/ui/panel
获取cookie
复习文件上传漏洞之前端校验绕过服务器后端绕过技巧
客户端绕过
-
禁用前端的js
-
后缀名绕过
服务端白名单绕过
- MIME类型检测绕过
- 00截断绕过
服务端黑名单绕过
- 特殊可解析后缀 除.php外,许多Web服务器配置也会将以下扩展名识别为php脚本 .phtml,.phps,.php5等
- .htaccess文件绕过
- .user.ini文件绕过
- 大小写绕过
- 空格绕过(在windows系统中会⾃动去除⽂件名最后的空格)
- 点绕过(在windows系统中会自动去除文件名最后的点)
- ::$DATA绕过
- 配合解析绕过 没有循环验证
- 双写后缀名绕过
服务端内容检查绕过和条件竞争漏洞
- 文件头检查
图片马绕过
突破getimagesize
getimagesize函数来判断上传的文件是不是图片格式。抓包后添加木马。
突破exif_imagetype
exif_imagetype读取⼀个图像的第⼀个字节并检查其签名,所以也是可以通 过在图⽚末尾添加⼀句话⽊⻢来进⾏绕过
- 二次渲染绕过
二次渲染会对图片进行加工,需要在加工前的图片和加工后的图片的交集里写入木马。
写入成功
- 条件竞争
由于服务器先保存文件再检查,期间可以被访问,可以通过这个时间差来执行代码。
不断上传php文件,这里用burp的intruder模块
访问文件
用蚁剑连接webshell
安装Upload_Auto_Fuzz插件
使用:
清除payload并添加
payload类型为extension-generated
选择生成器
自动进行fuzz