xss (Cross Site Scripting):跨站脚本攻击,为了不和层叠样式表(Cascading Style Sheets)的缩写CSS混合,所以改名为XSS。
主要基于java script (JS) 完成恶意攻击行为。JS可以非常灵活的操作html、css和浏览器,这使得XSS攻击的“想象”空间特别大。攻击者在网页中嵌式客户端脚本(通常是JavaScript的恶意脚本),当用户使用浏览器加载被嵌入恶意代码的网页时,恶意脚本代码就会在用户的浏览器执行,造成跨站脚本攻击。
微博、留言板、聊天室等等收集用户输入的地方,都有可能被注入XSS代码,都存在遭受XSS的风险,只要没有对用户的输入进行严格过滤,就会被XSS。
形成XSS漏洞的主要原因是程序对输入和输出没有做合适的处理,导致“精心构造”的字符输出在前端时被浏览器当作有效代码解析执行从而产生危害。
因此在XSS漏洞的防范上,一般会采用“对输入进行过滤”和“输出进行转义”的方式进行处理:
输入过滤:对输入进行过滤,不允许可能导致XSS攻击的字符输入;
输出转义:根据输出点的位置对输出到前端的内容进行适当转义;
1、盗取各类用户帐号,如机器登录帐号、用户网银帐号、各类管理员帐号
2、控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力
3、盗窃企业重要的具有商业价值的资料
4、非法转账
5、强制发送电子邮件
6、网站挂马 让更多人的受害
7、控制受害者机器向其它网站发起攻击 卖肉机
web应用对用户的输入过滤不严谨
攻击者写入恶意的脚本代码到网页中
用户访问了含有恶意代码的网页
恶意脚本就会被浏览器解析执行并导致用户被攻击
反射型XSS的流程:
存储型XSS攻击流程
BlueLotus
我这里选择的清华大学的是蓝莲花靶场(BlueLotus)
下载BlueLotus_XSSReceiver-master解压缩到PHPstudy的WWW目录下
然后打开PHPstudy
成功之后是这样的
然后访问本地ip,127.0.0.1:84
点安装
设置密码,然后下拉点提交
输入密码登录
登录界面
盗取用户cookie
图像标签,有一定的隐蔽性
绕开过滤的脚本
大小写
字符编码 字符编码采用URL、Base64、HTML等编码
可以用html编码进行绕过
危害最大的xss
写好一个脚本
有了弹窗
然后复制url再次打开发现弹窗还在,也就是说每一个访问这个网页的人都会弹出这个对话框
将rk.js改为自己ip
然后在pikachuxss平台输入
这样只要用户在输入框输入点击提交,后台就会在pkxss_keypress_result.php文件中记录下来
进入XSs盲打
随便输入
输入

访问http://127.0.0.1:81/vul/xss/xssblind/xss_blind.php
输入账户密码。就还可以看到有一个弹窗
然后点击确定后还有记录
htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体
预定义的字符是:
&(和号) 成为&
" (双引号) 成为 "
' (单引号) 成为 '
< (小于) 成为 <
> (大于) 成为 >
源码
1.对重要的 cookie设置 httpOnly, 防止客户端通过document.cookie读取 cookie,此 HTTP头由服务端设置。
2.在javascript中加入多个tab键,得到
< IMG SRC=“jav ascript:alert(‘XSS’);” >;
3.在javascript中加入 编码字符,得到< IMG SRC=“javascript:alert(‘XSS’);” >;
4.在javascript中加入字符,得到
< IMG SRC=“javascript:alert(‘XSS’);” >;