XSS靶场的四种类型

1.反射型XSS(get)

直接

输入,input框长度不够可以在查看器里面修改

2.反射型XSS(post)

你可以先注册一个用户,然后在用户方的input框输入xss注入内容

3.存储型XSS

针对于类似与留言板,评论区类的,可以使用存储型的xss进行注入

在 textarea 区域直接输入

4.DOM型XSS

DOM(文件对象模型):将脚本写进html文档内部,我自己的理解就是说我在输入框输入的内容不会返回给服务器,而是直接在前端js处理,直接用HTML.inner更改内容用的;

<script>
function domxss(){
	var str = document.getElementById("text").value;
	document.getElementById("dom").innerHTML = "<a href='"+str+"'>what do you see?		</a>";}
	//试试:'><img src="#" οnmοuseοver="alert('xss')">
	//试试:' οnclick="alert('xss')">,闭合掉就行
</script>

看下页面源代码就是说我们可以改‘str’处的值,eg:

javascript:alert(“hack”)

’ οnclick=“alert(‘xss’)”>

'>

说白了就是将他闭合,然后触发alert()事件

5.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="#" οnmοuseοver="alert('xss')">
                    //试试:' οnclick="alert('xss')">,闭合掉就行
                </script>
		<a href='#' onclick='domxss()'>有些费尽心机想要忘记的事情,后来真的就忘掉了</a>

这道题的关键在于domxss()方法里面的innerHTML这段话,就是对xss进行注入,跟上一题一样;eg:

​ '>

​ ’ οnclick=“alert(‘xss’)”>

​ javascript:alert(1)

6.XSS之盲打

在我看来这个一般用于客服反馈,就是说你在提交反馈信息时注入一个alert()到后台管理服务器中去,当后台管理员去打开反馈界面时我们注入的alert()就会弹出,然后一旦管理员点击了alert(),我们就可以获取管理员的Cookie信息,然后就可以进一步获取相应权限

eg:

<div class="main-content" xmlns="http://www.w3.org/1999/html">
    <div class="main-content-inner">
        <div class="breadcrumbs ace-save-state" id="breadcrumbs">
            <ul class="breadcrumb">
                <li>
                    <i class="ace-icon fa fa-home home-icon"></i>
                    <a href="../xss.php">xss</a>
                </li>
                <li class="active">xss盲打</li>

            </ul><!-- /.breadcrumb -->
            <a href="#" style="float:right" data-container="body" data-toggle="popover" data-placement="bottom" title="tips(再点一下关闭)"
               data-content="登录后台,看会发生啥?后台登录地址是/xssblind/admin_login.php">
                点一下提示~
            </a>

        </div>
        <div class="page-content">
            <div id="xss_blind">
                <p class="blindxss_tip">请在下面输入你对"锅盖头"这种发型的看法:</p>
                <p class="blindxss_tip">我们将会随机抽出一名送出麻港一日游</p>
                <form method="post">
                    <textarea class="content" name="content"></textarea><br />
                    <label>你的大名:</label><br />
                    <input class="name" type="text" name="name"/><br />
                    <input type="submit" name="submit" value="提交" />
                </form>
                            </div>
        </div><!-- /.page-content -->
    </div>
</div><!-- /.main-content -->

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cEWlKT6E-1665425026912)(C:\Users\Mark\AppData\Roaming\Typora\typora-user-images\image-20220507010242106.png)]

在文本框里输入 进行注入

7.XSS之过滤

直接用大小写替换,毕竟html兼容性比较强,可以用大小写转换来绕过过滤

eg:

8.xss之htmlspecialchars

htmlspecialchars()这个方法主要是应对html特殊字符的,但不对‘单引号做处理,所以你就明白了吧,嘿嘿嘿。

所以我们主要对中的text修改,进行提前闭合函数等方法完成alert()

        <div class="page-content">

            <div id="xssr_main">
                <p class="xssr_title">人生之所有苦短,是因为你的xss学习的还不够好</p>
                <form method="get">
                    <input class="xssr_in" type="text" name="message" />

                    <input class="xssr_submit" type="submit" name="submit" value="submit" />
                </form>
                <p class='notice'>你的输入已经被记录:</p><a href='οnclick=’alert(1)‘'>οnclick=’alert(1)‘</a>            </div>

        </div><!-- /.page-content -->

9.xss之href输出

javascript:alert(hack)

在这里插入图片描述

这道题没看源代码我做不出来,看着源代码就知道我们要改的时message值,所以在 < a href=‘…’ javascript:alert(“hack”)>

10.xss之js输出

先分析:

<script>
    $ms='asd';
    if($ms.length != 0){
        if($ms == 'tmac'){
            $('#fromjs').text('tmac确实厉害,看那小眼神..')
        }else {
//            alert($ms);
            $('#fromjs').text('无论如何不要放弃心中所爱..')
        }
    }
</script>

有这个我们就可以看出来,我们输入input的文本框中的值反馈到了$ms变量,所以通过修改ms值来alert()一个弹框。

我写的是复杂了点

'

你可以放进去看看,就知道了,看这个图

<script> $ms=''</script>
<script>alert("hack")</script>
<script>$a='';
if($ms.length != 0){
    if($ms == 'tmac'){
        $('#fromjs').text('tmac确实厉害,看那小眼神..')
    }else {
        //            alert($ms);
            $('#fromjs').text('无论如何不要放弃心中所爱..')
        }
    }
</script>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值