免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 16942 | 回复: 55
打印 上一主题 下一主题

[乔楚技术]CU灌水机的实现原理和思路 [复制链接]

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-11-01 15:10 |只看该作者 |倒序浏览
[乔楚技术]CU灌水机的实现原理和思路

    10月30日,CU论坛更换了程序使用了Discuz。

    换了新的,当然要这腾一下子了,于是一乐我的第一个灌水机,在清茶灌水测试,决然还成功了。对于灌水测试过程之中给清茶版主和网友带来的任何不便,表示诚恳的道歉和惭愧。

    技术归技术,下面我来讲一讲实现原理和思路。

    原理很简单,就是模仿用户发帖,使用CURL模块来做的。

    通过手工发帖的研究,发帖过程如下:
    1. 用户登陆成功,访问logging.php并发送用户名称和密码等数据
    2. 发帖,访问post.php,并POST发送相关参数即可灌水。因为当时验证码没有开启,所以可以成行。

    1和2需要连贯的进行,而他们而这的连续,靠得是cookie文件来进行的。

    查看 http://w.yi.org/ftp/FAPM/PHP/php_manual_zh/function.curl-setopt.html
    我们发现: 应用 CURLOPT_COOKIEFILE 参数,可以将cookie保存到一个文件并且被继续使用。

    cookie可以保存了,那么其他的工作就很好做了。

    当然,本文需要你对CURL较为了解。

    同是为了安全原因,不做详细的代码的分析了。

    以下为登陆的代码:


  1. <?php
  2. set_time_limit(1200);

  3. function make_seed($intBase=100000) {
  4.     list($usec, $sec) = explode(' ', microtime());
  5.     return (float) $sec + ((float) $usec * $intBase);
  6. }

  7. /*
  8. 安全提问:
  9. 0--无安全提问
  10. 1--母亲的名字
  11. 2--爷爷的名字

  12. 3--父亲出生的城市
  13. 4--您其中一位老师的名字
  14. 5--您个人计算机的型号
  15. 6--您最喜欢的餐馆名称
  16. 7--驾驶执照的最后四位数字
  17. */
  18. $strQuestionid = 0;
  19. $strAnswer = '';
  20. $strUsername = '';
  21. $strPassword = '';

  22. $strLoginData = '' . 'loginmode=' . '&' . 'styleid=' . '&' . 'questionid=' . $strQuestionid . '&' . 'formhash=242bdcad' . '&' . 'referer=http://bbs.chinaunix.net/index.php' . '&' . 'cookietime=0' . '&' . 'loginfield=username' . '&' . 'username=' . $strUsername . '&' . 'password=' . $strPassword . '&' . 'answer=' . $strAnswer . '' . '&' . 'loginsubmit=%CC%E1+%26%23160%3B+%BD%BB';

  23. $ch = curl_init();
  24. curl_setopt($ch, CURLOPT_URL, "http://bbs.chinaunix.net/logging.php?action=login");
  25. curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/99.99 (compatible; MSIE 99.99; Windows XP 99.99)");
  26. curl_setopt($ch, CURLOPT_POST, 1);
  27. curl_setopt($ch, CURLOPT_POSTFIELDS, $strLoginData);
  28. curl_setopt ($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
  29. curl_exec($ch);
复制代码

论坛徽章:
0
2 [报告]
发表于 2005-11-01 15:27 |只看该作者
版大  会教坏小孩的^_^

论坛徽章:
0
3 [报告]
发表于 2005-11-01 15:32 |只看该作者
请教如何于时共进,在现在要求输入验证码的情况下继续灌你的水?

由于你的水,每次法帖要输入那个验证码,痛恨大大的

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
4 [报告]
发表于 2005-11-01 16:42 |只看该作者
所以后面更进一步的代码没有给出来,需要自己去钻研了。

登陆现在肯定是成功的

论坛徽章:
0
5 [报告]
发表于 2005-11-01 16:49 |只看该作者
验证码找一个能编程的OCR接口,读出图片的stream写入到OCR里面,OCR能正确识别验证码,接着再CURL
自己写图片识别程序,没这本事,谁能提供一个,我们也玩玩

论坛徽章:
0
6 [报告]
发表于 2005-11-01 16:50 |只看该作者
cu的验证码应该不难识别,就几个小点

论坛徽章:
0
7 [报告]
发表于 2005-11-01 17:10 |只看该作者
除了OCR就没有别的可行的办法了?这个问题我也想过的。我知道才4位,嘿嘿,但是累啊,怎么用最聪明的办法解决?上www.wamp.cn找去!我要翻出它的源代码看看,写一个可逆的出来。。。他这个算法可逆么?找准,http://bbs.chinaunix.net/seccode.php代码应该是这样写<img src=''http://bbs.chinaunix.net/seccode.php></img>

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
8 [报告]
发表于 2005-11-01 17:16 |只看该作者
原帖由 reffo 于 2005-11-1 17:10 发表
除了OCR就没有别的可行的办法了?这个问题我也想过的。我知道才4位,嘿嘿,但是累啊,怎么用最聪明的办法解决?上www.wamp.cn找去!我要翻出它的源代码看看,写一个可逆的出来。。。他这个算法可逆么? ...


second.php的源代码我暂时没有,谁提供一下子。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
9 [报告]
发表于 2005-11-01 17:33 |只看该作者
清茶的老大在会议室里就是抱怨你这个事情?

论坛徽章:
0
10 [报告]
发表于 2005-11-01 21:37 |只看该作者

回复 1楼 HonestQiao 的帖子

用curl或者socket都是可以实现的,中间cookies的处理需要注意。不过最大难度还在于验证图像的识别,这个如果真要做还不能直接用PHP来做。 我恰好用Java做过图像识别和分割,如果用JAI来处理不难,因为CU上的图片验证相对简单。但是一旦管理员发现了,稍稍修改验证码的字体颜色和背景,要再识别就很困难。

不知道有没有第三方的很强悍的图像识别类库,专门针对各种图形验证码的呵呵。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP