学习记录-跨站脚本xss(第二次总结)

注:文章仅用于学术交流,不用于其它途径,不足之处,评论指出

跨站脚本xss分三类:反射型xss、存储型xss、dom型xss,通俗的认为前端注入
一、反射型xss
1)实质:通过查看前端代码,大多数对象是输入框,构造xss恶意代码,将链接发送给被攻击者,诱导被攻击者触发

2)流程:判断网站是否存在xss反射型攻击(可以通过弹窗验证)------通过xss平台获取恶意代码注入网站-------复制url(传参点在url含有恶意代码)也可变为短网址,通过社工(邮箱、qq、留言等途径)发送给网站用户------诱导网站用户点击后某种方式触发

3)如何判断网站是否存在xss反射型攻击
若是cms,可网上查询,注意的是最好搜索加上版本更精准,若不是,建议见框就插,看前端代码,输入xss判断是不是可以弹窗,可以弹窗且是url构造的xss,说明是xss反射攻击

4)常用三种类型触发:
1.定义js标签:<script>alert(666)</script>
2.伪协议触发:<a href=javascript:alert(666)>123</a>
3.事件触发:
onerror 事件 加载失败执行事件
持该事件的 HTML 标签:<img>, <object>, <style>
<img src=“image.gif” οnerrοr=“alert(666)” />

onload 事件 加载成功执行事件
<body>, <frame>, <frameset>, <iframe>, <img>, <link>, <script>
<body οnlοad=alert(666)>
</body>

oninput 事件 输入框输入时触发
该事件在 <input> 或 <textarea> 元素的值发生改变时触发。
<input type=“text” οninput=alert(666)>

onfocus 事件 在对象获得焦点时发生,autofocus页面加载时直接获取焦点
支持多个标签(可不加autofocus,需要手动触发焦点可以触发)
<input type=“text” οnfοcus=alert(666) autofocus />

5)xss平台获取恶意代码
xsshs.cn/xss.php 注册-登录-创建项目-获取恶意代码–坐等结果
可以选多种攻击类型,注入方式也有很多种
学习记录-跨站脚本xss(第二次总结)
学习记录-跨站脚本xss(第二次总结)
二、存储型xss
1)实质:通过嵌入xss恶意代码,存储在网站的后端,其它用户加载页面,从而触发xss恶意代码

2)流程:判断网站是否存在xss存储型攻击(也可通过弹窗)------通过xss平台获取恶意代码注入网站------坐等结果

3)判断网站是否存在xss存储型攻击
若是cms,可网上查询,注意的是最好搜索加上版本更精准,若不是,建议见框就插,看前端代码,输入xss判断是不是可以弹窗,可以弹窗且不是url构造的xss,说明已经存入数据库了是存在xss存储型(不仅限于弹窗这个方式

4)插入xss恶意代码
和上面xss反射型一样的方法

5)其它用户加载访问就会触发

三、dom型xss
1)实质:通过js修改网页,从而插入xss(其实就是通过代码审计查看js不严谨从而构成xss),dom型大多数都是反射型需要去诱导触发,其它类型的很少

2)流程:找到目标网站源码查看对js代码审计(可用弹窗判断)------修改参数构成xss

3)存在原因:第一个是让前端做简单的逻辑运算为后端减少压力,第二个是开发不严谨导致

4)判断是否存在dom型xss
对前端js代码审计,构建xss弹窗,常见的documen方法
学习记录-跨站脚本xss(第二次总结)
学习记录-跨站脚本xss(第二次总结)
5)xss平台打入恶意代码
和上面操作一样

6)如果是反射型domxss,通过社工诱导触发

7)如果是存储型domxss,坐等结果

8)安全狗的一种绕过方法
尝试绕一下,利用白名单和apache的特性,这里1.png为白名单,安全狗不会去检查,apache检测规则发现1.png不存在就会想上访问从而绕过白名单(当然apache这种检测方式可以设置,这里是默认检测方式)
index.php/1.png?id=<script>alert(666)</script>

9)静态页面、伪静态页面、动态页面的区别

静态页面:页面静止,如某文章页面,用浏览器控制台输入document.lastModified方法,返回的结果值不变

伪静态页面:页面静止,如某文章页面,用浏览器控制台输入document.lastModified方法,返回的结果值一直在变

动态页面:页面有动态画面,不断与外界产生交互

四、个人总结
1)谷歌浏览器默认会拦截弹窗
2)源码检查查看的单引号被渲染为双引号,前端用单引号就可以闭合
3)源码没有引用引号,前端单引号双引号都可以闭合,客户端存在容错机制,//为注释
4)前端检查和源代码存在少许差异,建议查看源代码
5)小技巧,存储型xss若可以弹窗,为了不被后台发现,如留言可以狂刷几十条,让那条留言分页,显示在后面,这样管理员也不轻易看到后面的那个弹窗界面,从而隐藏一下自己
6)弹窗的条件,只要符合前端的xss语句,不管返回什么都会执行弹窗
7)若获取到cookie,cookie结构是分号隔开,一个分号就算一个cookie
8)php里面 htmlspecialchars() 函数可以设置转义单双引号
9)dom型xss代码审计js使用的方法不限于ducument
10)ducument.write() 可以识别native编码,有时可以绕过安全狗或前端过滤规则

相关文章:

  • 2022-12-23
  • 2021-05-27
  • 2022-12-23
  • 2022-02-22
  • 2021-06-21
  • 2022-12-23
  • 2021-06-24
猜你喜欢
  • 2021-04-09
  • 2022-12-23
  • 2021-08-15
  • 2021-08-13
  • 2021-11-14
  • 2021-12-11
相关资源
相似解决方案