记一次漏洞挖掘 – 作者:公众号黑客前沿

写在前面

记录一次项目中漏洞挖掘的过程,文中使用到的技术粗略浅显,仅用来回顾总结。

公司授权项目,目前漏洞已修复,若文中存在漏点之处,各位看官切勿擅自发起攻击,否则产生的一切法律后果自行承担!

挖掘过程

打开首页:

图片[1]-记一次漏洞挖掘 – 作者:公众号黑客前沿-安全小百科

发现右侧有两个用户组注册,果断选择先注册:

图片[2]-记一次漏洞挖掘 – 作者:公众号黑客前沿-安全小百科

注册页面存在两处上传,尝试利用上传功能getshell,发现采用白名单上传,且网站中间件为nginx,测试发现不存在解析漏洞,此路不通。

发现注册时,可以填写备注信息,盲打一波xss,提交注册,然后我们可以等待cookie的到来。

图片[3]-记一次漏洞挖掘 – 作者:公众号黑客前沿-安全小百科

这里运气不错,等待了几分钟平台就收到了cookie,管理员还是比较爱岗敬业的,手动笑抽。

拿到cookie我们就直接进后台了,进后台自然是优先寻找文件上传点尝试getshell,寻找了一圈发现唯一的一处上传跟注册页面的上传一样是白名单验证,遂放弃。

图片[4]-记一次漏洞挖掘 – 作者:公众号黑客前沿-安全小百科

不过我们发现了一处功能存在id参数,随手加个单引号:

图片[5]-记一次漏洞挖掘 – 作者:公众号黑客前沿-安全小百科

发现添加了魔术引号过滤,但是id属于int型变量,不需要单引号闭合,故确定此处存在SQL注入。为了省事直接丢sqlmap了,但是发现跑不出:

图片[6]-记一次漏洞挖掘 – 作者:公众号黑客前沿-安全小百科

从报错的结果来看,怀疑是存在WAF,我们手工尝试一下,先查询user:

or updatexml(1,concat(0x7e,user(),0x7e),1)

直接链接被重置,一般情况下大多数WAF会过滤concat()函数,因此我们尝试内联注释绕过:

or updatexml(1,concat/*!50001*/(0x7e,user(),0x7e),1)

图片[7]-记一次漏洞挖掘 – 作者:公众号黑客前沿-安全小百科

嗯,问题不大,FUZZ过后,发现SELECT也会过滤,加上内联注释后可绕过:

or updatexml(1,concat/*!50001*/(0x7e,(select/*!50001*/table_name from information_scheama.tables where table_schema=database()),0x7e),1)

最终查询数据:

图片[8]-记一次漏洞挖掘 – 作者:公众号黑客前沿-安全小百科

可惜的是数据库不是dba权限,在后台继续fuzz后,发现了另外两处注入,不过后台功能比较少,暂时没有更多发现。

最后

本次漏洞挖掘,虽然没能成功拿下shell,但是共发现了两处存储型XSS,三处SQL注入(均在后台),算是有点收获,打完交差~

来源:freebuf.com 2021-04-12 10:07:34 by: 公众号黑客前沿

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论