XSS跨站——攻击类型

XSS跨站——攻击类型

1.反射型XSS(get)

  首先在界面中是能够有输入框的,所以尝试使用测试代码:

1
2
3
4
5
//onclick是一个鼠标触发事件,也就是鼠标触发之后就会发出警报
#' onclick="alert(2)">

//直接用script显示警告也可行
<script>alert(1)</script>

  可以看见,在输入框中有长度限制,我们无法完成完整代码的输入,所以尝试在url中进行填充

  还有一种方法是改变网页html代码中的长度限制。从而使得输入能够完整

  

2.反射型XSS(post)

  post与get型的区别在于post型的漏洞一般是通过表单的方式进行提交,我们无法利用到URL进行攻击

  很明显,在登录进去后,能够进行JavaScript恶意代码的注入,,但是在上方的URL并没有改变,也就是我吗无法使用像get类型一样的方法直接发送带有恶意代码的URL进行相关的攻击,这就涉及到一些有关cookie的配合攻击,后续的攻击类型会涉及到,这里只需要明白和get类型的区别即可

3.存储型XSS

  存储型 XSS 漏洞,是将恶意脚本注入到 Web 应用程序中的存储区域(例如数据库、文件系统等),当其他用户访问包含恶意脚本的页面时,恶意脚本会被执行,从而导致安全问题。

  可以看到,当我提交我们的留言时,留言会放到下面的存储区域,如果在输入的区域中加入JavaScript代码,那么就能实现将恶意脚本注入到 Web 应用程序中,从而导致别人打开该页面时,会执行代码

4.DOM型XSS

  首先了解HTML中的DOM树,其本质就是代码在操作代码的属性。以某网站为例子:

  当点击更多时,网站的地址并没有变化,但明显页面的布局发生了变化,所以我们使用f12查看网络流量情况

  这表示是有流量的改变,加载的变化其实是操作HTML代码中进行实现,达到最终的增加目的,这种情况就涉及到DOM型的构造,接下来以pikaqiu的漏洞复现为例

  首先是在目标站点上寻找输入点,并输入判断代码查看回应

  可以看到在输入特定判断代码后,回显出现了改变,也就说明该输入点并没有对特殊字符进行过滤,接下来查看网页相关代码

  JavaScript的代码在执行后会将a标签和输入的字符串连接,就如同一开始是空白的页面,在输入后输出了what do you see的回显,通过这个JavaScript函数,利用了DOM将字符串进行了拼接并把值给了a标签的href,然后输出,开始构造执行代码

1
#' onclick="alert('xss')">

  可以看到当我们加入代码后,只要点击what do you see后就能够出现alert的警告内容,可恶,一开始我忘记给括号内的xss加入单引号了,导致一直没成功,大家在输入的时候一定要注意语法问题

5.DOM型XSS-X

  该类型的主要区别在于URL出现了输入的内容

1
text=%23%27+onclick%3D"alert%28%27xss%27%29">#

  DOM-X型具有更大的危害,它能够通过URL输入一些内容,而普通型的DOM攻击仅仅是针对前端,但是URL作为参数前后端传递。

6.注意事项

  在进行脚本写入的测试中,如果使用了alert等语句,数字可以不用处理直接写在括号内,但是输入字母和汉字就需要单引号或者双引号,这是语法规则,当然,使用/ /进行闭合也是可以的,但是在输出的内容上也会带有//。


XSS跨站——攻击类型
https://one-null-pointer.github.io/2022/10/05/XSS跨站——攻击类型/
Author
liaoyue
Posted on
October 5, 2022
传送口