2019-11-20:xss学习笔记

xxe漏洞防御
使用开发语言提供的禁用外部实体的方法
php
libxml_disable_entity_loader(true);

卢兰奇对象模型,bom
由于现代浏览器实现了js交互性方面的相同方法和属性,因此常被认为是bom的方法和属性

例如
windows对象
所有的浏览器都支持windows对象,它表示浏览器窗口
所有的js全局对象,函数以及变量均自动称为windows对象的成员
全局变量是windows对象的属性
全局函数是windows对象的方法
甚至html dom 的document也是windows对象的属性之一
window.document.getElementById("header");
与此相同
document.getELementById("header");

windows.locaion对象在编写时可以不使用windows这个前缀
location.pathname 当前页面路径
location.hostname 当前页面主机名
location.port 当前端口
location.protocol 当前协议

navigator.appCodeName 浏览器代号
navigator.appNmae 浏览器名称
navigator.appVersion 浏览器版本
navigator.cookieEnable cookie
navigator.platform 硬件平台
navigator.userAgent 用户代理

xss漏洞原理
xss又叫css,全称为跨站脚本攻击,指的是攻击者往web页面或url里插入恶意js脚本代码,如果web应用程序对于用户输入的内容没有过滤,那么当正常用户浏览器该页面的时候,嵌入在web页面里的恶意js脚本代码会被执行,从而达到恶意攻击正常用户的目的

xss会造成的危害
cookie窃取
键盘记录
客户端信息探索
xss getshell
页面劫持
xss蠕虫
其他危害,如dos攻击,挖矿等

xss漏洞分类
反射性xss,一次性提交数据,服务端没有过滤或过滤不严谨,最后把处理后的数据返回到前端,一次性触发
存储型xss,服务器将攻击者提交的恶意代码,存储到后台数据库中,当正常用户去访问页面时,该页面会加载数据,那么恶意代码会加载到正常用户浏览器,被浏览器解析,永久性的触发
dom型xss,和反射性xss相似,前端接收过来的数据去当前页面中通过dom节点构造页面元素,或前端提交数据到后端,由后端构造页面在发送到前端,一次性触发

上一篇:DVWA-CSRF学习笔记


下一篇:Web For Pentester 学习笔记 - XSS篇