xss学习笔记——反射型
温馨提醒
🚀 注意啦!这篇文章来自5 年 171 天 以前,可能已跟不上时代的步伐。阅读时请自备时光机,小心穿越哦!
总结摘要
如何发现,并验证xss跨站脚本漏洞的存在
环境
- 靶机:dvwa
- 测试工具:BurpSuit,HackBar, Netcat
XSS 漏洞产生的原因,和 SQL 注入有“异曲同工之妙”,所以 XSS 又称作“ HTML 注入”,都是没有对用户输入的内容,进行检查过滤而导致站点被恶意利用,或者服务器数据被窃取,那么如何发现 XSS 漏洞的存在呢
一、验证思路
① 输入的内容提交后,查找当前页面中,有无显示输入的内容
② 输入漏洞验证代码,看是否有效
二、漏洞验证Poc
利用 HTML 语言中的几个常见的标签,以及 javascript,可以实现验证漏洞是否存在
例子中跳转的网页,我用的自己的路由器后台管理地址。
|
|
当然,不是什么时候都会有效果
随着靶场等级的提高,对用户的输入内容就会愈加严格检查和过滤
思路要骚,才能绕过限制:D
① 靶场等级:low
没有任何过滤,输入的所有poc均生效
② 靶场等级:medl
匹配字符串非法字符,并替换为空字符串
Ⅰ. 双写绕过
|
|
Ⅱ. 大、小写混写绕过
|
|
Ⅲ. 其他标签、事件绕过
③ 靶场等级:high
加强了过滤规则,采用正则替换
上一个方法中的双写、大小写都失效了
还好没有过滤其他的标签,和上一个一样,可以用其他标签触发XSS
④ 靶场等级:impossible
加入了 user_token 验证,和 htmlspecialchars() 函数对输入的字符串进行 “无害化处理”
这个例子中,各种姿势也没用了T_T
|
|
总结
通过查阅freebuff上大佬的解释
可以看到,通过使用htmlspecialchars函数,解决了XSS,但是要注意的是,如果htmlspecialchars函数使用不当,攻击者就可以通过编码的方式绕过函数进行XSS注入,尤其是DOM型的XSS。
学到的三个防御xss
的函数
- str_replace()
- preg_replace()
- htmlspecialchars()
反射型xss
,各种钓鱼链接都会利用网站存在xss
结合钓鱼页面,骗取点击,获取受害者的登陆 cookie ,或者是账号密码等信息
接下来就是如何利用xss ,获取用户登陆 cookie,以及实现键盘记录器了:D