Xss笔记

xss
XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。

书上说JavaScript学的越好,xss的效果越好。

javascript
javascript:alert(/xss/)

PHP中的相应函数:

【详细看PHP手册】

这里可能不全,想了解更多的看手册。

strip_tags($str, [允许标签]) #从字符串中去除 HTML 和 PHP 标记

htmlentities($str) 函数 #转义html实体

html_entity_decode($str)函数 #反转义html实体

addcslashes($str, ‘字符’)函数 #给某些字符加上反斜杠

stripcslashes($str)函数 #去掉反斜杠

addslashes ($str )函数 #单引号、双引号、反斜线与 NULL加反斜杠

stripslashes($str)函数 #去掉反斜杠

htmlspecialchars() #特殊字符转换为HTML实体

htmlspecialchars_decode() #将特殊的 HTML 实体转换回普通字符

下有对策:

<textarea> </textarea> : 这个标签把xss代码 嵌入并直接展示了,闭合了它

<textarea> </textarea> 这里xss <textarea> </textarea> 这样闭合

利用HTML标签属性值执行xss
例如:
<table backgroup="javascript:alert(/xss/)" > </table>
<img src="javascript:alert(/xss/">

用空格或tab分割:
<img src="java script:alert(/xss/">
像这个,IE就会顺利打开
要是没有换位符,就以分号结尾
<img src="java
script:alert(/xss/">
以此绕过过滤

对标签属性转码
源代码-->ascii码
或者部分替换掉

产生自己的事件:
<input type="button" value="click me" onclick="alert('click me')"/>
点击click me后,会触发 onclick 事件,然后执行JavaScript代码。
既然事件能让JavaScript代码运行,用户就能利用它来执行跨站脚本。

<img src="##" onerror="alert(/xss/)" >
解释标记发生错误时,就会加载SRC。

css:

  1. JavaScript镶嵌到image:URL 里
  2. 用expression把css和JavaScript关联起来。

防止过滤:
大小写混写
用单引号而不是双引号
不用引号
以上都能绕过xss filter
在样式里使用 /* */ 以此方式混入字符干扰欺骗过滤器。
xss也支持十六进制,构造语句。

shellcode:
利用一个漏洞时所执行的代码,在xss里,就是JavaScript等脚本所编写的xss利用代码。
expliot:
完整编写好的漏洞利用工具。
poc:
一段证明漏洞存在的程序代码片段

存储型
攻击者在界面插入xss代码,服务器将数据导入数据库,当用户访问到存在xss漏洞的页面时,服务器从数据库取出数据放在页面,导致xss代码执行,达到攻击效果。

需要能插入的地方,而且还能再展示它。

反射型
在URL中插入xss代码,服务端将URL中的xss代码输出到页面上,攻击者将带有xss代码的URL发送给用户,用户打开后受到xss攻击。
比如说在搜索栏里,输入之后,查看一下源代码,闭合原标签,然后插入xss代码。
get参数试一试,搜索自己的关键字。
HTML实体化去应对xss,再通过闭合标签xss。

DOM型
攻击者在URL中插入xss代码,前端页面直接从URL中获取xss代码并且输出到页面,导致xss代码执行,攻击者将带有xss代码的URL发送给用户,用户到开后受到xss攻击。
和反射型很像,没有传入后端,仅在前端
还是搜索栏,放到URL里的。
对js代码要求很高。

比如说,我就在我的留言板里,留言: <script> alert(/xss/)</script> 就会弹个框
同样的还有: 在链接上:?name=<script> alert(/xss/)</script>

onmouseover 事件
HTML 中:
<element onmouseover="SomeJavaScriptCode">
JavaScript 中:
object.onmouseover=function(){SomeJavaScriptCode};

<input name="p1" size="50" value="2333" onmouseover="alert(document.domain);" type="text">
onmouseover 属性可使用于所有 HTML 元素,除了: <base>, <bdo>,
, <head>, <html>, <iframe>, <meta>, <param>, <script>, <style>, 和 <title>.

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,968评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,601评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,220评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,416评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,425评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,144评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,432评论 3 401
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,088评论 0 261
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,586评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,028评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,137评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,783评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,343评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,333评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,559评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,595评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,901评论 2 345

推荐阅读更多精彩内容