一次基于爬虫的社工之旅

引子

写这片日志之前不得不吐槽下学校的网络先,没有公共Wi-Fi,还没有给学生提供教学区上网途径,据说可以申请,但一定要挂在某位老师的名下,WTF。

哪里有压迫,哪里就有反抗!

——《毛主席语录》

本来手头是有几个教学区教师帐号的,(这些帐号是matrush大一的时候和他的室友一起手工社工出来的这种事情我会说出来吗?!),用了这么久很多帐号密码都被重置过了,直到有天我需要上网的时候发现没一个帐号可用,于是决定社工hack一遍。我一直信奉dont be evil(不作恶) ,hack这种事情看似是evil的,毕竟手头的权利大了,但是我觉得不要干坏事就好了 ;)

正文

学校教学区上网使用了一套叫Dr.Com的解决方案,在接入内网后使用Web登陆的方式认证。

dr_zjut

考虑到校内很多帐号用户名都是重用的,比如邮箱的帐号和上网登陆的帐号,依照matrush先前的思路,从社工邮箱开始。学校有个教师数据中心提供教师信息的查询。检查了下后发现存在好几个SQL注入点,站点是基于Servlet + jsp + MSSQL建的,不知被人hack多少次了,幸亏权限不大(这位coder一定不知道Java中使用PrepareStatement(rather than Statement)就可以轻松杜绝SQL注入这种事情了。)一句非常简单的SQL注入获取到了所有教师的id。

'OR 1=1 --  
//稍微解释下,很容易猜测这个查询功能的SQL是类似这样的:SELECT * FROM TABLE\_FOO WHERE COLUMN\_BAR LIKE '关键字'  
//这里的关键字被我用第一行的注入语句填充后就变成了  
SELECT * FROM TABLE\_FOO WHERE COLUMN\_BAR LIKE ''OR 1=1 --'  

tdc get ids

http://×××××/UTADB/teacher/search_one_intro.jsp?teacher_id=[教师编号]  就是对应教师的个人介绍页面,我又要吐槽下,前端做得懒透了,兼容性差,难看!现在的目标是扫描所有教师的页面获取上面在所有的email地址。我的策略是用爬虫把所有页面都爬下来,再做本地文本检索。这里我稍微邪恶了下,开爬了把教师的照片也爬下来,服务器获取照片的url是固定的,判断那张照片是通过session判断的,所以这里每次访问都保持一个cookie。直接上shell脚本

期间服务器多次down掉,估计承受不了这么快的访问请求。多次重试+漫长等待后,爬到了9,795 items, totalling 408.4 MB ,以及195个email地址。下一步就是用这些email前缀去穷举帐号,密码一律用matrush以前命中率很高的那个史上最常用的弱密码,响应的html文本中Msg表示了响应的结果,这个结果代表什么意思查看dr.com页面源代码即可知道。

在写post格式的时候,没想到dr.com服务端还加了个标记0MKKey=%B5%C7%C2%BC+Login,结果一直响应出问题。还好坚信http请求一定是可以伪造的,N次蛋疼后发现了这个标记。再一个脚本:

结果保存在了result.auto文件中,done。



关于 McKelvin

a hacker who's interested in `music computing` and `network security`.
此条目发表在 Work 分类目录,贴了 标签。将固定链接加入收藏夹。
  • http://paeonia.me brilliant

    这方法不错,可怜的我每次都是抓包搞的。
    问一下这个方法效率咋样:如果把sleep去掉,1分钟大概能尝试多少个密码,还有大概要占用多少带宽?

    McKelvin 回复:

    sleep:当时加sleep是为了防止tdc挂掉,它没有做并发优化,相当弱。
    带宽:爬下来的html + 照片在我本地的文件夹里:「9,803 items, totalling 430.4 MB」
    其他没有统计过。
    这种方法比较粗暴,当时只测试了一个五位的弱密码,扫了一遍,10个不到可用。
    其实这种方法我已经没用了。如果能从其他库渗透过来是极好的

  • 晓樵

    文章中的方法么? 假期有空试试 呵呵

  • 晓樵

    有rss输出么?一下子没找到啊

  • 晓樵

    cool。。。
    然后:教师邮箱系统对用户名错误和密码错误的回应不一样。。。

    McKelvin 回复:

    @晓樵, 恩,不过后来找到了更直接的方法得到了全部email。

  • http://renkai.org Renkai

    为什么大Mat寝室的都这么牛啊啊啊啊啊啊,膜拜啊

  • http://icek.me icek

    膜拜阿,他现在应该还在波兰吧!

    McKelvin 回复:

    比完就回来了,带了各种福利回来

  • http://icek.me icek

    惊现matrush大神,世界果然很小!

    McKelvin 回复:

    @icek, 哈哈,巧了,mat是我室友