实训第五天记录-xss-labs:level1-level10+btslabs窃取cookie模拟

一、XSS攻击初步-btslab-盗用cookie

  1. 用两个浏览器来模拟攻击者(firefox)和受害者(google)

  2. 用受害者浏览器注册一个新账号,并在受害者浏览器进行登录,发布一个forum

    image-20210725094913922

    可以看到有一个用户test新发布的forum

    image-20210725095152480

    再用未登录的攻击者发布一个forum,可以看到新增了一条由匿名用户发布的forum

    image-20210725095328298

    最后查看一下受害者的cookie,以便后面与攻击者获得的cookie对比

    image-20210725100328487

  3. 攻击者在xss安全测试平台复制一段xss攻击代码,放在发布的forum的message中,引诱受害者去点击自己发布的forum

    image-20210725111709521

    image-20210725101135293

    image-20210725100449965

  4. 受害者收到引诱去点击刚刚匿名攻击者发布的forum

    image-20210725100645215

  5. 攻击者在xss平台查看,可发现新增一条记录,点击展开可发现,有cookie字段,和前面的受害者cookie对比,发现一致

    image-20210725100952615

    image-20210725101043100

  6. 攻击者利用拿到的cookie冒充test用户发布forum,此时需要用到firefox的插件modheader

    image-20210725101610713

    可以看到此时攻击者发布一条冒充的forum,但发布者却显示是test用户,即攻击成功

    image-20210725101639210

二、xss-labs:level1-level10

  1. level1

    首先发现xss输入点和输出点,页面上的test和payload会随url中get参请求数的变化而变化,于是将url中的test改为js代码,通关

    image-20210725111159786

    image-20210725111401376

  2. level2

    首先发现潜在的xss输入点和输出点

    image-20210725114221934

    采用和第一关相同的方法发现并未成功

    image-20210725114310475

    查看页面源码,发现尖括号被转义(原因是服务器端用**htmlspecialchars()**函数进行了处理)导致执行失败

    image-20210725114435084

    image-20210725143858822

    但考虑input标签value处的属性值,可以构造">使value先闭合,然后再放入script代码,通关成功

    image-20210725114608420

  3. level3

    首先发现潜在的xss输入点和输出点,在输入框输入文字点击搜索后,页面会显示相应的输入框中的内容

    image-20210725140447006

    直接输入js代码点击搜索后,不能成功执行,于是查看页面源码,发现h2标签和input标签中的尖括号都被转义

    image-20210725140619247

    image-20210725143649734

    但我们还可以通过绑定js事件的方式执行js代码,构造**’ οnfοcus=‘alert();**,前面的’ 先闭合value属性,此时查看页面源代码,发现input已经多了一个onfocus事件绑定,此时再去聚焦到页面上的输入框可以发现执行成功

    image-20210725144422030

    image-20210725144521560

  4. level4

    首先寻找潜在的xss输入点和输出点,在输入框中输入js脚本尝试执行,发现搜索框中的尖括号全部消失

    image-20210725144751635

    image-20210725144933240

    查看页面源码,此时同样考虑用第三关事件绑定的js执行方式,构造**" οnfοcus="alert();**,查看页面源码发现input标签多了一个onfocus事件,再点击输入框发现执行成功

    image-20210725145032064

    image-20210725145507264

    image-20210725145520666

  5. level5

    寻找潜在的xss输入点和输出点,在输入框中输入js脚本,点击搜索,发现搜索框中原本输入的script变为scr_ipt,同时尝试onfocus绑定事件执行,同样失败

    image-20210725145618530

    image-20210725145849003

    image-20210725145949219

    image-20210725150748032

    于是我们尝试换一种js执行方式,利用a标签执行,构造**"><a href=“javascript:alert();”>xss</a>**,点击搜索后的xss链接,发现执行成功

    image-20210725151417003

    image-20210725151427684

  6. level6

    寻找潜在的xss输入点和输出点,同时输入js代码进行测试,同样script变为了scr_ipt,尝试使用a标签和onfocus执行js同样失败

    image-20210725151526548

    image-20210725151646767

    image-20210725151940498

    image-20210725152020653

    尝试将a标签的href换为大写HREF,发现没有被处理,点击链接后执行成功

    image-20210725152315112

    image-20210725152327572

    image-20210725152337692

  7. level7

    查看潜在的xss输入点和输出点,并用js代码测试,可见输入框中script均被删除

    image-20210725152612573

    image-20210725152723900

    image-20210725152756218

    于是考虑双写绕过,构造**"><scscriptript>alert();</scscriptript>**,发现执行成功

    image-20210725153051589

  8. level8

    查看潜在的xss输入点和输出点

    image-20210725153215862

    image-20210725153304653

    用js代码进行测试

    image-20210725153418620

    image-20210725153659259

    于是我们考虑html转义字符,构造javascript:alert();,点击链接,发现执行成功

    image-20210725153908993

  9. level9

    寻找潜在的xss输入点和输出点,可以看到a标签处的链接被判定为不合法,经测试发现,链接中只要含有http://即被判定为合法image-20210725154006672

    image-20210725154028207

    image-20210725154242079

    尝试构造javascript:alert();//http://,发现javascript与第八关一样被处理了,所以采用html转义,点击链接后发现执行成功

    image-20210725155758171

    image-20210725155926139

    image-20210725155901592

  10. level10

    寻找潜在的xss输入点和输出点,同时输入js代码进行测试,发现有三个输入框均被隐藏

    image-20210725160029792

    image-20210725160206825

    通过get请求参数构造,发现只有name为t_sort的输入框可以显示出来

    image-20210725161600262

    于是利用这个特点构造t_sort=" type=“text” οnfοcus="alert();,聚焦输入框,可以发现执行成功

    image-20210725162540443

    image-20210725162552156

三、xss利用总结

  1. 在无特殊处理的情况下直接执行js代码
  2. 当输入的字符串被放入某标签属性中时,可以通过构造字符串先闭合标签,然后再写入要执行的js代码
  3. 可以利用onfocus或其他事件绑定执行js代码
  4. 可以利用a标签的href属性执行js代码,具体为href=“javascript:xxx”
  5. href属性被处理时,可以利用大小写绕过
  6. 当script被整体删除时,考虑双写绕过
  7. 注意使用注释符//
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值