Xss笔记

作者: _return_ | 来源:发表于2018-04-27 21:21 被阅读53次

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>.

相关文章

  • Xss笔记

    xssXSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩...

  • XSS笔记

    近来在学习XSS,感觉有一些感悟,却又好像缺少一点什么。写这篇博客,既是一种总结,也希望能够通过这种写博客的方式整...

  • 前端安全机制问题之一(XSS)

    作为安全方面的小白,笔记当然要从基础开始,简单的来先说说XSS即跨站脚本攻击 跨站脚本攻击的原理XSS又叫CSS ...

  • 跨站攻击脚本-XSS

    XSS: Cross Site Scripting XSS 概念 XSS 分类 反射型xss攻击图示 XSS 攻击...

  • XSS payload.

    alert('XSS') alert("XSS") alert('XSS') alert("XSS") S...

  • XSS学习笔记

    一、XSS 简介 XSS(Cross-Site Script,跨站脚本攻击) 攻击方式如下图所示: XSS 攻击根...

  • XSS闯关笔记

    level 1 查看第一关的源码,发现get方法直接输入的内容,可以直接构造payload payload: al...

  • xss原理笔记

    之前零散的接触过xss,但是对于他的原理不清楚只知道如何简单的使用,现在来补一波理论。在浅尝了一些后端PHP的知识...

  • 【学习笔记】XSS

    解决方案1 解决方案2解决方案3

  • XSS攻击笔记

    什么是XSS? 跨站脚本(Cross-Site Scripting,XSS)是一种经常出现在 Web 应用程序中的...

网友评论

      本文标题:Xss笔记

      本文链接:https://www.haomeiwen.com/subject/iwxilftx.html