1.本质
跨站脚本攻击是指攻击者往Web页面里插入恶意Script代码,当用户浏览该页时,嵌入Web里面的Script代码会被执行,从而达到恶意攻击的目的
2.产生层面
前端
3.函数类
输出类函数
常见的输出函数有: echo printf print print_r sprintf die var-dump var_export
4.漏洞操作对应层
前端
5.危害影响
受Javascript代码影响
6.浏览器内核版本等
浏览器安全策略可能会阻止Js脚本执行
7.XSS 跨站漏洞分类:反射,存储,DOM
从产生层面,具体区别,危害等级等讲解
8.反射,又叫非持续型
是一个交互的过程,通过特别的包含Js代码的访问,使页面执行相应的Js代码
需要访问特定内容,或访问特定的链接才可以触发
9.储存,又叫持续型
与反射型相比,访问提交的Js代码被储存进了网站的数据库
每一个访问该页面的人都会触发代码执行,危害更大
10.DOM
文档对象模型(Document Object Model),简称DOM,代码在前端,常用于更新当前页面
客户端的脚本程序可以通过DOM动态地检查和修改页面内容,且不依赖与服务器端的交互,而是从客户端获得DOM中的数据在本地执行
如果DOM中的数据没有经过严格确认,就会产生DOM XSS漏洞
DOM型一般属于反射型
测试代码:#’ oncli删掉这串汉字ck=“alert(2)”>
11.上传有长度限制
如果输入的信息会上传到地址栏。可以直接在地址栏输入
审查元素,修改“maxlength”也就是长度限制
12.XSS 常规攻击手法:
平台,工具,结合其他等
利用案例:通过在线留言、在线下单等功能进行跨站攻击,窃取管理员的cookie,登陆后台
13.cookie session
用户凭据:通过凭据可以判断对方身份信息
cookie 存储在本地 存活时间较长 小中型
session 会话 存储在服务器 存活时间较短 大型
涉及资源:
xss平台:https://xss8.cc/xss.php?do=login
xss平台:https://xsshs.cn/xss.php?do=login
xss-labs:https://github.com/do0dl3/xss-labs
随意多功能留言板 SyGuestBook:http://down.chinaz.com/soft/37581.html
XSS 平台及工具使用
1.Postman:自定义发包
注册后可以看历史记录
可以选择当前的提交方式,在提交方式后填入网址
点“Headers”选择输入一个KEY值,名字叫“Cookie”,Cookie的值输入到“VALUE”里,并勾选
点击“Send”发包,可以在“Body”里的“Preview”查看图形界面
2.Webshell后门箱子
Webshell 后门中的后门
3.beef
启动beef:beef -xss
beef启动后会弹出一个地址,访问该网址,输入账号密码beef/beef登录
复制命令行界面“Example”中的一句话,提交给攻击目标
地址左边的Hooked Browsers会列出受控的服务器,右边的Commands会列出beef的功能
4.手写
跨站攻击常见于:
留言板、评论区、订单系统、建议反馈等
如果对方采用session验证,那么采取cookie盗取攻击是无效的
**解决办法:**利用跨站漏洞访问phpinfo这个文件,读取到里面“HTTP_COOKIE”的“PHPSESSID”的值
涉及资源:
XSS在线靶场:http://xss.fbisb.com/
webshell收集项目:https://github.com/tennc/webshell
postman:https://www.postman.com/
什么是HttpOnly
如果cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击。
如何获取后台权限
1.cookie获取进入后台
2.直接账号密码登录
如何获取账号密码
1.没保存读取
表单劫持
表单劫持功能,表单劫持需要登录框处有跨站漏洞才行
2.保存读取
读取保存数据
配置,勾选“获取浏览器记住的明文密码”,参数与网站源代码对应
XSS案例
皆来自xss-labs
Level1
网页上“欢迎用户”字符后面的内容与网址中“name”等于的值相等
将name后面的值改为一般测试语句“
Level2
使用了htmlspecialchars()函数,会转换特殊字符(<>)导致JS语句失效
变量“value”也接收了语句,由于在引号内失效
闭合“value”的引号“”>
Level3
对尖括号过滤,但是在搜索框里
HTML onclick事件属性:当点击按钮时执行一段JavaScript
“’ οnclick=’alert(1)”,点击搜索框
用移动鼠标的事件也可以
Level4
与第三关类似
“” οnclick=”alert(1)”,点击搜索框
Level5
将“on”替换为“o_n”,将“