转载自:https://mp.weixin.qq.com/s/NsRa8HNobG-hulRqu5RKbw

推荐理由:

这篇文章的亮点在于,通过 XSS+CSRF 漏洞挖掘到了一个任意密码重置漏洞。

看到这篇文章,突然想起来以前打过一台Linux靶机,也有这个漏洞,但是当时没有记录下来。

漏洞原因:

低权限用户在自己的资料上 XSS 了一个重置管理员密码的 post 请求,只要高权限用户查看该用户的信息,就会自动提交该重置密码的请求,而请求能成功的原因就在于该 post 提交表单存在 CSRF 漏洞,没有设置 token 参数。

前言

最近在做一些安服项目,随便挖了一些漏洞,系统功能点太少,导致只有一些小的漏洞点,领导不是很满意,随后就有了以下内容。希望大家能从文中学到点知识,来应付工作压力。

储存型XSS漏洞的发现

在注册时,本着能插的地方必须插一下

图片

访问进去果然有问题,一个低危的储存型XSS漏洞到手

图片

没啥技术含量哦,我们继续往下。

CSRF漏洞的发现

注册进去后发现,系统功能点少的可怜,这时把目光投向了用户管理处

图片

一般像这种垃圾系统,必有CSRF漏洞,点击新增账号,然后burp抓包生成CSRF POC。

图片

简简单单,没有技术含量。

凑数的高危

领导又非要出成绩,只能凑合凑合给出个高危咯。当我打开修改账户页面信息时,发现可以查看其他账户信息,那就说明这个XSS漏洞还有利用空间。

图片

结合CSRF的漏洞,我们可以使用XSS+CSRF组合拳来进行恶意操作其他账户。

非管理员权限需要原密码修改账户密码

图片

但高权限账户登录后,可以直接重置其他人的密码。那么XSS和CSRF漏洞结合起来不就有一个高危漏洞任意密码重置了么。原理很简单。

构造请求包,原始的修改请求还是有很多的参数的,这里我尝试删除了一些无用参数。

图片

使用fetch发送请求

1
<script>fetch('http://webapp/workUser.action',{method: 'post',body:'vo.nickName=admin1&vo.id=8057&vo.password=123456&confirmPwd=123456',headers:{'Content-Type':'application/x-www-form-urlencoded'}})</script>

插入后使用高权限账户查看低权限账户信息,在burp里就能捕获到其发出的修改密码请求

图片

最后登录此账户发现密码已被成功修改。

当然,这里的利用点不仅仅修改密码可以利用,还有其他如修改个人信息、新增用户等都可以利用,但这样水报告不太好,意思意思得了。

结语

当我们拿到一些低危漏洞时不要急着交,多看看相似的功能接口、组合利用,往往有其他意想不到的收获。