[关闭]
@1kbfree 2018-07-30T20:02:58.000000Z 字数 1922 阅读 1189

登陆框引起的血案

漏洞挖掘


偷偷转载至Freebuf(用于自己学习),比较难理解的做了对应的注释(其实还有很多没打)

利用泄露的文件进行XSS

1、通过源代码发现了一个隐藏的链接:

image_1cjkp9mkl1mi0iptfi116l0122d9.png-30.2kB

2、打开之后发现提示缺少sid参数,此时手动构造:

image_1cjkpa38cv6o1aq2o56sumqpm.png-23.2kB

3、点击确定之后,跳过去的是一个荒废的页面,此时我回过头来看了一下源代码,尝试手动添加action、method参数:

image_1cjkpagfg1u0a16v12qpo911hac13.png-72.1kB

4、发现了method参数有效,此时构造xss payload,成功弹窗(= = 没想到method参数也可以)。

image_1cjkpar5o1ojd13fi1blk1dmis5p1g.png-147.9kB


接口JSON XSS

1、发现请求链接是:http://xxxx/swap/im?callback=jQuery18900926711223842687

而响应包内容是:

  1. jQuery18900926711223842687({"errorCode":1,"errorMessage":xxxxxxx})

2、灵光一闪:可以测试JSON劫持嘛。但是由于响应包的内容并没有啥作用,所以此处的JSON劫持完全没有危害,但是这里却还可以测试XSS漏洞。

image_1cjkpej7f1lo56ps17aumf215j71t.png-41.3kB

3、构造如下链接,成功弹窗:

  1. http://xxxx/swap/im?callback=<script>alert(1)</script>

image_1cjkpfnd910pf10817nj1of712hj2a.png-133.4kB


登陆时XSS

image_1cjlforim67bq01r2qsft1c1a9.png-124.2kB

然后构造为html页面即可触发xss

登陆成功时XSS

image_1cjlfq8eq1kf2gq7131v1lg119rgp.png-32.6kB

所有参数测试一遍,发现link参数,存在xss,直接在script标签里面,并且还送URL跳转一个。

hhh

登陆失败时XSS

image_1cjlfrqn9k7goto21bre1n3e1j.png-30.9kB

逐个参数进行测试后,最后发现gourl参数存在xss,过滤了script关键字,使用tab键进行绕过。

image_1cjlfs77l8v71j4513rk150rsrv20.png-116.2kB

URL跳转

用户登陆这个功能这里,可以测试的点可以但不仅仅并且不一定是如下几个:

1. 登陆成功后跳转到的页面

此处link1参数可以控制跳转到的页面:

image_1cjlg1ogj1lv7qt23bg10ttj782d.png-35kB

image_1cjlg20pp1du9smv1jmf1n7p122h2q.png-64.2kB

其实我在想如果这里跳转后面的时候加上xss代码能不能成功执行

2. 登陆失败后跳转到的页面

1、此处的gourl参数可以控制返回的页面:

image_1cjlg5bq11dudnfvk136n6126v37.png-30.4kB

2、可以看到设置了自动跳转,(呃……我们让他跳转到mstsec)。

image_1cjlg6o68o4oian1bj355n84s3k.png-78kB

image_1cjlg73po5651qtifl01qcn4a41.png-84.9kB


未授权访问

JS文件背后的秘密

1、在查看源代码时发现引入了该JS文件,跟踪……

image_1cjlg7v0kkgdfpf5m51e07idj4e.png-38.7kB

2、发现了两处接口,逐个跟踪。

image_1cjlg8e2h7en1j4l1bhqdt2osa4r.png-73kB

3、发现下面那个接口直接未授权访问… 泄露了该站,所有的用户名,此时便可以进行有针对性撞库了。

image_1cjlga7si1ip05v14g193h1l935o.png-87.2kB

不安全的对象直接引用 | 设计缺陷

1.JS文件GETSHELL

1、通过读取JS代码时发现这么一段,竟然可以文件上传。

image_1cjlge54i92n186gqv168g9ed6h.png-156.2kB

注释:这里有限制上传的文件类型,但是因为是前端限制所以是可以绕过的

2、构造如下表单:

image_1cjlgfeil127j1h4j5a5dtr6hk7b.png-83.4kB

3、成功GETSHELL:

image_1cjlgi3i01sk1nes1h8a1qe31ufu7o.png-105.8kB

任意用户登陆之绕过客户端校验

image_1cjlgj517u8eirj1vln1lug9v185.png-158.3kB

登陆成功后相应包里返回一条链接 http://xxx.com/user/login.php?id=MTAw。发现是用户IDbase64编码,此时遍历用户ID,实现任意用户登陆。

image_1cjlgkhie9c0mhp1apsmo8v4c8i.png-237.1kB

风骚之参数的FUZZ

1)任意后台地址,手动添加参数admin=1之后,发现返回了cookie,成功登陆

2)普通用户时,手动添加debug=1之后,发现权限竟然多了一些。。


二维码

第一个

1、将二维转换为HTTP请求(https://cli.im/deqr/),然后来分析

2、扫码进行登录扫描之后,会弹出确认登录框以确认登录。在点击“登录”按钮的之后,发送如下POST数据包来进行登陆:

  1. POST https://xxx.com/xxxx/confirm HTTP/1.1
  2. ….
  3. token=xxxxx&source=passport&fingerprint=一大长串字符
  4. 删除finderprint参数,发现对请求无影响=>删除
  5. 删除referer参数,发现对请求无影响=>可以CSRF
  6. 将请求方法改为GET型,发现失败=>只能构造表单进行CSRF

此时受害者只要是主站登陆状态下,发送了我们构造好的这个表单,那么我这里就可以直接登陆他的账号。(这句话暂时不是和理解)

第二个

1、使用账号所绑定的微信登陆:

image_1cjknrqv3k7p9l11dbk76u5v9.png-65.1kB

2、扫描之后发现不需要点击确认就登录了,和常规的微信二维码扫描登录完全不一样,这时候才发现原来这里是使用的微信公众号绑定的账户去登录的,解析的二维码地址为:

image_1cjknsmr0bbfh1m7tk1qgri60m.png-167.7kB

3、利用条件:

  1. 受害者微信公众号绑定了账号;

  2. 受害者微信内点击我们的链接,我这里就这可以直接登陆了

解释:因为这里的是不需要确认的,并且只需要绑定了那个公众号就可以扫码直接登陆,那么这里写的发送Url的意思和CSRF漏洞原理一样,让点开链接的人假装自己去扫描了这个二维码,所以就可以登陆的。


观后感

1、在每个Url中分析他的每个参数,分析是否可控,然后看能够引发什么危害

2、分析每个页面的JS代码,看看是否有什么敏感的信息泄露导致漏洞的产生

3、分析漏洞的危害,查看能否与其他漏洞组合,分析漏洞产生的地方以及对其他处的关联,然后看情况的去组合和利用。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注