//有些网站通过网络爬虫转载文章都不写明文章出处,请保留文章原作者:redraiment

公告:因为服务器要转让,我将不再有可使用的服务器。因此挂机站点将于2008年11月6日0时关闭。

最新消息:客户端版AutoAuto preview 1已发布,详情查看最新日志。

最新消息:我写了一个脚本,免费提供大家在线挂机,目前还在测试阶段,每天最多只能提供60个人同时挂机。欢迎大家前来测试体验。
具体参见http://acm.zjgsu.edu.cn/friendsell/。

真是不容易呀!连续好几个不眠的夜晚终于没有白费!我终于实现了自动买卖好友的功能。终于可以在平凡的鼠标操作中解放出来了!起初我在Google里搜索好友买卖的漏洞时,结果都是以前的GET和POST漏洞,现在这些漏洞都已经不能再利用了。
  我用的系统是fodora 6,Linux下有个命令:curl,能下载网络上的文件。也可以用来作命令行下的浏览器。于是我就琢磨,既然它是一个浏览器,那也应该能提交让宠物挖煤、卖花的请求吧。
  于是man curl一下(如果不知道curl的用法,就现man一下~^_^),看看curl的用法。然后一步一步来。

一、登入校内网
  先运行$ curl -o index.html http://xiaonei.com/,把首页下载下来,保存到index.html里。
  打开后搜索"form"查看表单,定位到:

  1. <form method="post" id="loginForm" class="login-form" action="http://login.xiaonei.com/Login.do" >
  2. <p class="top">
  3. <label for="email">登录邮箱:</label>
  4. <input type="text" name="email" rule="blank#email" error="请输入正确的email地址" class="input-text" value="" id="email" tabindex="1" />
  5. </p>
  6. <p>
  7. <label for="password">密码:</label>
  8. <input type="password" id="password" name="password" rule="blank" error="请输入密码" class="input-text" tabindex="2"  />

  看这段代码,就知道,表单是提交把email和password给http://login.xiaonei.com/Login.do
  那我们就用命令$ curl -O -D ck/1 -d "email=username@host&password=yourpassword" http://login.xiaonei.com/Login.do,来登入。
  参数-D是指定cookie的保存地址;-d是将后面的信息以post方式提交信息。
  打开下载来的Login.do,内容:

  1. The URL has moved <a href="http://home.xiaonei.com/Home.do">here</a>

  页面转到了个人主页上。那就再去看看主页的信息:
  $ curl -b ck/1 -D ck/2 http://home.xiaonei.com/Home.do
  参数-b是指定需要以来的cookie文件。
  用相同的方法进入好友买卖的首页:http://friendsell.xiaonei.com/friendsell/home.do
  定位到对好友处理的代码段:

  1. <li id="release_f" onclick="releasePet(222729759,this)"><a
  2. href="javascript:void(0)">抛弃她</a></li>
  3. <li id="discount_f" onclick="discountPet(222729759,this)"><a
  4. href="javascript:void(0)">打折处理</a></li>
  5. <li id="torment_f" rel="222729759" onclick="abuse(222729759,this)"><a
  6. href="javascript:void(0)">折腾她</a></li>
  7. <li id="comfort_f" rel="222729759" onclick="comfortPet(222729759,this)"><a
  8. href="javascript:void(0)">安抚她</a></li>
  9. <li id="nickname_f" rel="222729759" onclick="nickname(222729759,this)"><a
  10. href="javascript:void(0)">起昵称</a></li>

  我们要做的,当然是折磨她咯!不过点击后是触发一个js函数,但文件里却找不到abuse这个函数,看来还有另外一个js文件。我在顶部看到了:http://xnimg.cn/xnapp/frs/frs.js?ver=63283这个链接,直接在浏览器里打开看看。就能看到所有的js函数。原来作者还预留了很多功能哈!找到abuse的函数:

  1. function abuse(id, obj) {
  2. XN.DOM.disable(0);
  3. var myurl = "/friendsell/abuseAjax.do";
  4. var pars = "id=" + id;
  5. var myAjax = new Ajax.Request(
  6. myurl,
  7. {
  8. method: 'post',
  9. parameters: pars,
  10. onComplete: function(r) {
  11. XN.DOM.enable();
  12. displayAbus(r, XN.Element.realLeft(obj), XN.Element.realTop(obj));
  13. },
  14. onFailure: function() {
  15. }
  16. });
  17. }

  原来是把id这个信息提交给abuseAjax.do来处理。
  运行$ curl -O -b ck/1 -D ck/2 -d "id=friend's id" http://friendsell.xiaonei.com/friendsell/abuseAjax.do
  获得以下信息:

  1. [{content:"<div class=/"dialog_summary/"><div style=/"margin: 10px auto; width: 300px; text-align: center;/"><img width=/"100/" src=/"http://hd34.xiaonei.com/photos/hd34/20080510/12/43/head_2695h107.jpg/"/><div class=/"m10_0/"><table><tbody><tr><td class=/"graytext w100/">你要让***做什么呢?</td></tr></tbody></table></div><hr size=/"1/" class=/"mb10/"/><div class=/"cmplist mb10/"><ul><form id='abuse_form' method='post' action='/friendsell/abuse.do'><li><input type=/"radio/" name=/"paintype/" checked=/"check/" id=/"paintype/" value=/"1/"/>在冰冷小黑屋关一天  <font color=/"#666666/">(消费¥1000)</font></li><li><input type=/"radio/" name=/"paintype/" id=/"paintype/" value=/"2/"/>痛扁她一顿  <font color=/"#666666/">(消费¥100)</font></li><li><input type=/"radio/" name=/"paintype/" id=/"paintype/" value=/"3/"/>饿一天不给饭吃</li><li><input type=/"radio/" name=/"paintype/" id=/"paintype/" value=/"11/"/>去看芙蓉姐姐演唱会</li><li><input type=/"radio/" name=/"paintype/" id=/"paintype/" value=/"8/"/>去卖花</li><li><input type=/"radio/" name=/"paintype/" id=/"paintype/" value=/"9/"/>跳草裙舞</li><li><input type=/"radio/" name=/"paintype/" id=/"paintype/" value=/"10/"/>半夜闹铃</li><input type='hidden' name='id' value='friend's id'></form></ul></div></div></div>",id:"friend's id",name:"***"}]

  内容很明显,是弹出的窗口信息。把paintype和好友的id以post形式提交给abuse.do。
  起初到了这里,我卡住了。我还是依然提交:
  $ curl -O -b ck/1 -D ck/2 -d "paintype=8&id=***" http://friendsell.xiaonei.com/friendsell/abuse.do
  但却没有返回成功的信息。我直接在firefox里提交url:
    http://friendsell.xiaonei.com/friendsell/abuse.do?paintype=8&id=***
  结果弹出一个窗口,说“不要修改链接哦^_^”。看来是作者在修补以前的漏洞时做的修改。

  这让我感觉有点奇怪,莫非还有什么隐藏的信息要提交吗?
  为了验证自己的想法,我用winSock来抓包,看看firefox提交和手工get提交的区别。结果,出了提交方式,貌似看不出其他的区别!
  正当我绝望的时候,突然灵光一闪,是不是abuse.do对前面的页面abuseAjax.do有依赖?
  于是我运行:
  $ curl -O -b ck/1 -D ck/2 -d "paintype=8&id=***" -e http://friendsell.xiaonei.com/friendsell/abuseAjax.do http://friendsell.xiaonei.com/friendsell/abuse.do
  成功了!

  然后我写了个shell。对我所有的宠物进行提交,结果全部成功!也因此发现一个小漏洞!
  起初,我在想,男生下面没有买花的选项,不晓得行不行。但我想,反正不行也无所谓,先提交看看。结果,却成功了!如下图,其中红色圈的是男生,却也能买花~同样,女生也能挖媒咯~哈哈!

  这不算是什么大漏洞,但却方便我写脚本了,不用去判断宠物的性别,统一去挖媒就搞定,哈哈~

  来总结一下过程:
    1)登入校内,保存cookie
    2)下载好友买卖首页到本地
    3)提取自己的宠物的id
    4)逐一安排宠物去打工

  我这些过程写成一个shell脚本来运行。代码如下:

  1. #!/bin/bash
  2. # filename: pet
  3. if [ $# = 2 ]
  4. then
  5. email=$1
  6. password=$2
  7. else
  8. echo "usage: $0 email password"
  9. exit 1
  10. fi
  11. # Save cookie.
  12. curl -O -D cookie -d "email=${email}&password=${password}" http://login.xiaonei.com/Login.do
  13. # Get pet list.
  14. curl -O -b cookie http://friendsell.xiaonei.com/friendsell/home.do
  15. URL='http:friendsell.xiaonei.com//friendsell//'
  16. get_line="egrep ' {20}<a class=/"bold/"' home.do"
  17. get_id="sed -e 's/[^0-9]//g'"
  18. insert_head="sed -e 's/^/curl -O -b cookie -d /"paintype=5/&id=/'"
  19. append_tail="sed -e 's/$//" -e ${URL}abuseAjax.do ${URL}abuse.do/'"
  20. # Comfort TT and abuse pet.
  21. filename="/tmp/abuse"
  22. echo "#!/bin/bash" > $filename
  23. echo "" >> $filename
  24. eval "$get_line | $get_id | $insert_head | $append_tail >> $filename"
  25. chmod u+x $filename
  26. /tmp/abuse
  27. # Clean.
  28. rm -rf $filename *.do cookie

  然后用crontab来指定每一小时自动运行一次。^_^
  $ crontab -e
  0 */1 * * * ~/friendsell/pet email password

后记:
  同样的方法,成功实现自动补充好友!保证自己的好友总数一直持续在12只。^_^

发现校内网好友买卖的一个小漏洞!并成功实现自动好友买卖!相关推荐

  1. 发现了阿里云 APP 的一个小 BUG

    由于微信不允许外部链接,你需要点击文章尾部左下角的 "阅读原文",才能访问文中链接. 前几天在华为手机上使用阿里云 APP,从 oss bucket 中下载了一张图片,想要通过微信 ...

  2. 工作中发现的相对布局中的一个小技巧

    大家都知道,我们在配置布局xml文件的时候,都需要考虑该布局在横竖屏不同状态下的显示样式,尽可能的将一个xml文件即适应于横屏,又适应于竖屏.这就要求在xml文件中尽量少使用类似于"50di ...

  3. 【财经】人人网(校内网) -- 盈利模式

    在2008年底,互联网SNS行业浮躁到了顶点.从年初校内网的所有者千橡集团成功融资4.3亿美元,到年中开心网的迅速崛起,到年底互联网SNS热潮完全爆发,众多SNS网站纷纷涌现,"山寨SNS网 ...

  4. 校内网困局:还能走多久

    作为facebook的中国复制版,校内网(www.xiaonei.com )还是相当成功的.2002年12月上线,到2007年5月为止,短短一年半时间,校内网当前注册用户人数就已达到了600万,而且每 ...

  5. 重启计算机连线的标志是,win10右下角总出现一个小地球图标怎么办_win10电脑网络连接图标变成地球如何解决...

    最近有用户发现电脑右下角总是会出现一个小 方法一:直接重启 先检查一下网线是否没插好,另外如果当前电脑没有重要的事项在操作,可以直接重启电脑,大部分的小问题可以通过重启电脑来快速解决,不行的啊,看方法 ...

  6. 向日葵linux远程很卡,血泪经验分享!一个小东西搞定内网财务主机的远程运维...

    原标题:血泪经验分享!一个小东西搞定内网财务主机的远程运维 360行,要说哪一行辛苦,"运维"绝对可以入围!作为一名运维技术人员,每天和电脑主机打交道,转眼也快五年了.最烦的其实就 ...

  7. 怎么用linux设计一个小程序,“Linux”小程序发布一个月后,我们发现了什么

    原标题:"Linux"小程序发布一个月后,我们发现了什么 这一个月来,这个小程序得到了八千多人的使用,一百多位贡献者实际参与了翻译贡献,其中贡献最高的"Datura st ...

  8. 一个小网管的淘金梦----深圳往事(4)

    [路在何方] 话说上回我站在华强北的天桥上茫然远望,有朋友担心我会不会想不开从天桥上跳下来啊,当然不会,跳天桥也太没技术含量了吧. 培训结束了自然不能在张老师那里继续住下去,在楼下阴暗潮湿的小巷子里看 ...

  9. 「CSS畅想」何以解忧,美食足矣,用技术给好友开发了一个零食盲盒小游戏

    灵感来源 天气冷了,办公室零食准备起来.最近一直忙着工作,有点忽视了好友.看着网友分享的零食图片,我头顶的灵感之光亮了. 正所谓,何以解忧,美食足矣.我准备给好友写一个零食盲盒的小游戏,能看不能吃的那 ...

最新文章

  1. Hyper-V虚拟化测试05防火墙及证书配置
  2. (C++)1002 A+B for Polynomials
  3. R语言ggplot2可视化:ggplot2可视化半小提琴图(Half Violin Plots)
  4. CV:基于Keras利用CNN主流架构之mini_XCEPTION训练性别分类模型hdf5并保存到指定文件夹下
  5. kubernetes系列10—存储卷详解
  6. 解决Ubuntu系统“无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系”的有效方法
  7. vray渲染里服务器信息,VRay分布式渲染详细介绍
  8. 西门子精彩SMART触摸屏下载程序时常见问题分析与处理对策
  9. linux下用c语言写吃金豆,吃金豆pacmanTC版
  10. 计算机导论大一第四章,计算机导论-第四章.ppt
  11. 【Python-二分法-查找重复值】
  12. iPhone加码“独立王国” 有可能成摆设?
  13. Kickoff - 创造可扩展的,响应式的网站
  14. 浅谈无线AP、无线路由器
  15. android称重的技术,智能称重系统之智能地磅称解决方案
  16. Obi Cloth 仿真布 学习
  17. 【Web技术】1348- 聊聊水印实现的几种方式
  18. 微信公众平台安全模式消息体签名及加解密PHP代码示例
  19. Why c++ coroutine?Why libgo?
  20. 如何设置WordPress文章特色图像(Featured Image)

热门文章

  1. git报错:Permission denied (publickey).
  2. 用D3.js画树状图
  3. LISP文件 统计多段线的面积命令tjmj-并中心标注
  4. mr php高强度金属复合管,【科技成果】南京工业大学高强度耐蚀双金属复合材料及其产品...
  5. POS漏洞致使300万Dickey客户信息被贴上论坛
  6. 再见!公司的烂系统~ 网友:好想给大神当小弟...
  7. 该死,面试里怎么有那么多套路!
  8. 放置奇兵服务器维护,放置奇兵瓦妹最佳辅助,无法匹配最佳网关服务器
  9. 人在深圳,刚进腾讯!双非学渣进厂初体验!
  10. ES6/ES7/ES8/ES9/ES10常用特性和新特性最全总结