XSS:跨站脚本攻击又,叫CSS(Cross Site Script)跨站脚本攻击是指恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的
我们在学习xss漏洞之前,先来了解一下客户端浏览器与服务器传输http请求方式,常用的http有以下方式
一,http请求方式
GET
请求从服务器获取资源
HEAD
类似于GET请求,只不过不会返回实体数据,只
获取报头
POST
向服务器提交数据
PUT
替换服务器的内容
还有以下方式

当我们的浏览器向服务器发送请求时,会发出这样一个请求头

服务器接收到浏览器请求时,会回应这样一个响应头

这样的http传输模式他的特点非常的灵活,并且传输方式可靠,无状态
二,cookie的产生
1.我们在登录一个网站的时候,每次请求是独立的,需要我们鉴定身份和保持会话,输入密码和用户名以后,关闭这个窗口,第二次进入的时候,会不用输入密码和用户,这就是cookie,避免重复的登录引起繁琐操作。
2.他的实习是由服务端给客户端下发标识,cookie
key/value格式的文本
name=wuya
id=99
3.产生流程
浏览器第一次访问 --服务器在响应中通过Set-Cookie头字段,下发 Cookie
浏览器保存在本地 --硬盘 有过期时间的Cookie
C:\Users\15542\AppData\Local\Google\
Chrome\User Data\Default\
内存 ----没有过期时间的临时Cookie,退出浏览器即失效
浏览器随后访问 ----在请求头中用Cookie字段发给服务器
3客户端cookie如下属性
(1)name=value 一个name/value,就是一个cookie。name/
value这个是必须的,其他的都是可选的。如果
name重复,只取第一个
(2)expires
cookie的过期时间(格林尼治时间),超过这个
时间,cookie就会失效。如果不设置,代表是临
时的cookie,cookie在浏览器关闭的时候就失效
了。
(3)max-age
与expires作用相同,用来告诉浏览器此cookie
多久过期(单位是秒)。max-age的优先级高于
expires
(4)domain
cookie对哪个域名生效。如果没有设置,就设置
为服务器的域名。如果是临时的cookie,就不能
设置domain。
比如.baidu.com,百度所有的子站都可以使用。
zhidao.baidu.com只能百度知道使用。
Cookie具有不可跨域名性。这个是由浏览器保证
的,google服务器不能修改baidu的cookie。
(5)path
除了匹配域名,还可以具体匹配到路径,如果域
名和路径都匹配,那这个cookie就会起作用。
如果是/,这个服务器所有的路径都可以使用这
个cookie。如果没有设置,那个路径响应,path
就是哪个值
(6)secure
只有HTTPS连接,才发送cookie到服务器
(7)httponly
告知浏览器不允许通过脚本document.cookie去
更改这个值,同样这个值在document.cookie中
也不可见
4.Cookie特点 明文 可修改 比如火狐浏览器 大小受限
cookie的用途 保持会话 记住密码 跟踪用户行为
三、session

四、通过js操作cookie

五、写xss脚本注入网页
1、
定义 :恶意攻击者利用web页面的漏洞,插入一些恶意
代码,当用户访问页面的时候,代码就会执行,
这个时候就达到了攻击的目的。
除了JavaScript之外,这个脚本也可以是Java、
VBScript、ActiveX、Flash等等
2、xss类型分为反射型(DOM)和存储型

反射型xss攻击会将带有js脚本的链接发给其他人,而受害者点击链接,xss攻击就发生了
而存储型的危害就很大,一般想一些留言板地方有链接后台数据库,攻击者将脚本注入网页之中,每当其他人访问这个页面时,从数据库返回来的页面带有恶意代码,都会收到攻击。
六、一些xss平台
1.在pikachu靶场中,有如下类型

而在pikachu靶场中下方有pkxss管理后台,可以进行如下方式

2.在我们的kali系统有beef-xss平台
输入beef-xss就会启动,如果没有安装,会提示输入(N/y)输入y就会自动安装
当我们启动beef-xss后
会自动打开浏览器来到后台页面,默认用户名beef 密码123456

下面两个地方就是payload,其中需要将127.0.0.1改为自己kali的地址

这个就是可以将这个注入到pikachu平台里面,这样我们就可以在beef后台管理页面看到

3还有一些其他在线xss平台,这里就不细说了,和pikachu是一样的
七、xss的检测
1、我们的一些手动测试payload

2、同样也是kali系统里面的工具,xsser,他可以同时自动进行post和get请求测试方式
可以通过xsser -h知道里面一些参数
我们的检测接口如下,这里是我自己kali系统里面的靶场dvwa

还可以通过搜索引擎语法
最后一种是图形化
在kali系统里面输入xsser --gtk
3.第三个是XSSStrike,这里不做过多介绍,需要安装Python,在github上有
八、关于xss的防御
1.我们在一些靶场中可以看到,他的防御方式可以通过替换大小写。
2.安装waf防火墙,对一些的内容进行过滤。
3.使用htmlentities,将输入内容实体化,避免攻击发生。
九、最后就是xss闯关游戏xss-lab
在下一期我会出闯关教程
2728

被折叠的 条评论
为什么被折叠?



