• 本文作者: lizhe
  • |
  • 2017年3月27日
  • |
  • 交流互动
  • |

先知白帽子大会感悟之Gr36

天融信阿尔法实验室 李喆

这次的白帽大会干货很多,从每个人的演讲中都能学到或者感悟到一些东西,无论是技术也好,还是经验也好,真的都很有用。在这里我能做的事把自己的一些理解和领悟告诉大家,无论是对的还是错的,都希望能帮助到大家。具体的细节还是可以看视频或者看新出炉的ppt等。

 

先从Gr36_开始说起,大神有多厉害就不再这里说了,技术细节可以看这里

http://mp.weixin.qq.com/s/rWdHrlkEHQOW4SUY1rKP6A?from=timeline

 

Gr36的一些思路总结:

信息搜集大家都知道很重要,但是信息搜集传统的就不说了,如何能扩散下思路呢?

Gr36给我们介绍的是微信公众号,那该挖什么呢?IP,域名,账号,邮箱,密钥有用的都可以挖。所以信息搜集思路就是各个地方都看一看。像这种github上也能挖到很多私密的信息,或者某个平台下载的客户端是不是可以扔到ida里看看有没有私密信息啥的,或者云盘里面是不是有某个管理员的啥呢?只有面越广,渗透才越容易。Gr36讲的移动app就是结合了移动app抓的包中发现了重置密码的密钥,做到了任意重置密码,听起来很简单,但关注细节就很关键,不是谁都能关注到的,所以细节很重要。

再说说Gr36讲的两个注入,我各人觉得,不管是什么注入,宽字节注入也好,排序注入也好,都是因为变量代入数据库,然后数据库出现了异常照成的,所以根本是变量,但是测试的payload该怎么扩充。先看看宽字节注入,利用的是%df会把反斜杠吃掉,那么是如何发现的呢?可以是fuzzing,还要整理收集各种编码字符进行测试。或者结合数据库特点,进行一些特别的sql语句来fuzzing测试。但是我觉得最重要的还是思路,思路对上了,然后去寻找方法,比如宽字节,如果你能想到把反斜杠吃掉,那直接去gbk字符表进行遍历,看有哪些字符带5c,然后发现gbk编码運字是df5c,那其他的可以不可以呢?比如e05c郳字可不可以呢?

 

GBK编码表

http://www.qqxiuzi.cn/zh/hanzi-gbk-bianma.php

xianzhi1

这其实是mysql特性,只要第一个字节ascii码大于128,mysql就会认为是中文进行转换把5c吃掉,不过这种需要数据库要设成gbk编码,那其他宽字节编码思路是不是一样呢?gb2312不行,因为只到十进制不包含5c范围没那么大,那范围达到16进制的宽字节是不是都可以这么利用呢?前提是数据库支持并设置成了这种编码,这里只提供下思路,验证还要是自己动手比较好。

 

最后的总结:

思维要发散,眼光要广泛,观察要细心,研究要深入,这是我这次学到的对我个人来说很重要的东西,希望能对大家能有点用处。由于其他人的技术细节ppt还没有放出,会在放出后继续总结。

Written by lizhe