前言
最近在尝试冲刺排名,恰好本次渗透中的东西可以拿来做一些分享,希望可以给大家提供一些思路,有什么不对不足的地方,希望各位师傅斧正,本文所涉及的漏洞均已提交至src平台
正文
0x01 任意用户注册
像这种注册页面没有验证码的,果断抓包尝试无限绑定任意电话号码和邮箱注册
验证之后成功注册并登录两个账户,果然可以批量注册,登陆,送上手的低危成功吃到
0x02 任意用户密码重置
登陆账户,进入修改资料界面,仔细观察,修改密码居然不用填旧密码?
果断抓包,这里的逻辑是用自己的用户名找回密码,在最后修改密码的时候抓包,改成其他用户名
验证一下,成功更改另一用户密码登录,ok,又是一个低危+,(其实可以看到这里第一个和第二个漏洞都不难,因为是业务逻辑类型,这类型的漏洞其实只要我们细心,就一定能挖到的)
0x03 水平越权+存储xss组合拳
上面在找到任意密码重置后,便可以发现这个页面存在非常简单的越权漏洞,原理同上,他的逻辑是通过username参数来查询更改后端的数据。但是既然已经找到任意密码重置了,单单一个水平越权确实没什么看点了,但是没关系,虽然咱们菜,但是咱们能坚持,够细心
继续对资料修改处进行测试,发现下面有一自我介绍处,自我介绍这个功能一般来说长度和特殊字符限制比较少,因为这属于业务需要,所以测试的时候遇到了就不能忽略,
果然这里有一存储型xss漏洞,抓包改payload,然后登陆另一账户进入修改资料页面验证成功
备注:其实这里也可以用存储型+csrf组合拳哦,不过我个人认为越权+存储型更实用(当然要是用img标签打csrf也很实用啦)0x04 sql注入
问题出该网站一信息查看处,看到url处存在?id=1
多用几个payload找到更多信息,
首先是发现存在waf,
payload1:www.xxx.com/xxx/?id=1+and+select
然后是存在报错信息,
payload2:www.xxx.com/xxx/?id=abcd
虽然access数据库不支持报错注入,但是后面我们会利用是否报错来进行一个盲注
于是手注一直尝试,找到了他这里的语句结构,非常难受,access数据库除了不能报错,也不能利用注释,但是别放弃,
payload3:www.xxx.com/xxx/?id=1+and+exists(
基于此语句结构去构造payload,虽然有waf但是可以绕过,具体绕过手法我想在后面的文章做详细汇总
这里说一下其中有一个逻辑,select后面不能直接跟任何占位空字符(%0d,%0a,%0c,%20,’ '),这个应该是他在后端自己又加的正则,用select(xxx)可以绕过这个逻辑
最终的payload:www.xxx.com/xxx/?id=1+and+exists(查询数据的语句)
绕过waf后可以通过盲注暴力猜解数据,可以看到admin表不存在,会给到错误信息回显,而另一个表是存在的,则正常回显
成功猜解出一表名,点到为止,拿下高危
结语
最后分享自己的一个心得体会,如果想从基础慢慢进阶,那么一定不要着急,细心的去解决每一个问题,一定不要轻易放弃,有个大佬跟我说过,学习网络安全,一定要有自信,一定要坚持,我可能今天不会这个东西,但是我不可能永远都学不会。