XSS

XSS的原理分析和解析

什么是XSS

相当于HTML注入

注入的本质:把用户输入的数据当作代码执行

两个关键的条件:
1、用户能控制输入
2、原本要程序要执行的代码,拼接了用户输入的数据
SQL注入拼接的是操作数据库的SQL语句。XSS拼接的是网页的HTML代码,一般而言我们是可以拼接出合适的HTML代码去执行恶意的SQL语句(XSS就是拼接恶意的HTML)

XSS能做什么

  • 盗取cookie(用的最频繁的)
  • 获取内网ip
  • 获取浏览器保存的明文密码
  • 截取网页屏幕
  • 网页上的键盘记录

XSS平台

xsspt.com(开放注册)
xss9.com(需要邀请码)

XSS类型

反射型XSS

(你提交的数据成功实现了XSS,但是仅仅是对你这次访问产生了影响,是非持久型攻击)

存储型XSS

(你提交的数据成功实现了XSS,存入了数据库,别人访问这个页面的时候会自动触发)

持久型/存储型XSS:嵌入到web页面的HTML会被存储到应用服务器端,简而言之就是会被储存到数据库,等用户打开页面时,会继续执行恶意代码,能够持续的攻击用户。

挖掘:任何可能插入数据库的地方。(用户注册页面、留言板、上传文件的文件名(管理员可见的)报错信息)

DOM型XSS

DOM-based XSS漏洞是基于文档对象模型Document Objeet Model的一种漏洞。DOM是一个于平台、编程语言无关的接口,他允许程序或脚本动态地访问和更新文档内容、结构样式、处理后的结果能够成为现实页面的一部分。DOM中有很多对象,其中一些是用户可以操纵的,如URL、locatio、refelTel等。客户端的脚本程序可以通过DOM动态地检查和修改页面内容,他不依赖于提交数据到服务器段,而从客户端获得DOM中的数据在本地执行,如果DOM中的数据没有经过严格的确认,久会产生DOM-based XSS漏洞。

0%