您现在的位置是:首页 > cms教程 > Discuz教程Discuz教程

Discuz论坛自动发帖机实现方法

李恩妙2025-06-28Discuz教程已有人查阅

导读1. 起因:某人在自己的空间搭了个discuz,设置了诸多必须灌水的邪恶规定。本人一向潜水员当惯了当然不爽。a. discuz论坛无任何图片验证码,包括登陆以及发帖的时候。

1. 起因:某人在自己的空间搭了个discuz,设置了诸多必须灌水的邪恶规定。本人一向潜水员当惯了当然不爽。
2. 前提条件:
a. discuz论坛无任何图片验证码,包括登陆以及发帖的时候。
b. form中无随即校验码。
其实a里面如果只是登陆的时候需要验证码都好办,关键是post的时候没有就行,加上本来就是一个batch程序,不想也没必要加上ocr,反正大多数情况下也起不到多大作用,尤其是现在的验证码经常变态到人都不知道结果的时候。
至于form里面分析了一下其实只有一个formhash而已,虽然这个hash是随即,但它其实是和你的session相关联的,所以一切就好办了~~
3. 准备工作:
a. 使用命令行来实现,脚本都懒得写了,不求美观,够用就行~反正又不指着这玩意儿捞钱~~ 使用命令行工具的话能够模拟post操作的印象里只有curl(linux下移植过来的,简介自己解决吧)了,有知道其他工具的麻烦吼一声~
b. 为了sniffer传输的数据,我用的httpwatch。嵌入ie的挺方便,一来不用漫天找<form>里面的数据,二来也省的动用专门的sniffer。
c. 文本编辑器。地球人都知道~~~个人推荐Emeditor~
4. 实施:只写部分过程和原理了~~
a. 想发帖不登陆是不行的,所以先获得标示身份的cookie。
原理1:curl -D,简写就只给个参数,详细的去看curl --help。大概意思就是将received httpheader dump出来。cookie在http传输过程中是通过写入header来发送给服务器的(服务器也是通过header里面的SET-Header设定cookie),所以把整个header dump出来绝对够的。虽然这个header只是received的,但是curl的下次使用的时候可以自动将其转换为send的数据,比方说把Set-Cookie字段自动作为Cookie字段发送出去。另外需要注意一点,ie的cookie不能直接拿来放到curl用,起码我在测试的时候是这样的,还没想通为什么~~=_=###
原理2:上面说过了discuz所有的form其实都是有一个form hash的,而这个form hash正常情况下是不会变的。没看过代码,怀疑可能是本机客户端的一个标示决定的,因为初始情况下,IE的hash是一个,即使你重开n多次都是一样。而curl获取到的又是另外一个。
原理3:curl -d,用curl来post数据。
步骤1:既然form hash本机的“同一种browser”是一样的,所以先用curl -D cookie.txt -o cache.htm http://www.ebingou.cn/index.php来获取测试页面,然后从cache.htm里面得到formhash值。
curl -D cookie.txt -o cache.htm http://www.ebingou.cn/login.php
步骤2:自己拿ie登陆一遍,用httpwatch看看post的数据大致有哪些,然后。这个是个人都会,不多说了。关键记得改写的都写全,否则server get request发现有参数没写肯定给你返回来。二一个是反正用的post,里面包含中文也没关系,只要不是要求encoded的就行。
步骤3:curl -d 把数据全都post出去就行。注意一点就是原本form里面可能已经写了action="login.php?action=xxx"之类的东西别扔了~~ 运行完打开cache.htm确认一下登陆是否成功就行。
curl -d "action=login&key1=value1&......" -D cookie.txt -o cache.htm http://www.ebingou.cn/login.php
b. 自动发帖
原理1:curl -b,重用指定的cookie(确切地说应该是header),指定到上面的cookie.txt就行。
原理2:curl -d和form hash,同上。
步骤1:获取新建帖子的页面,用httpwatch sniffer一下或者直接分析源代码就行。和上面一样。
步骤2:发送新建帖子数据。比a里面的步骤3多加了一个包含cookie的参数而已,没什么特别的。碰到的第一个问题是自己测试的时候发现post数据中有下面这么一行。
key: attach[] value: filename="" Content-Type: application/octet-stream
看名字是发送附件的,正常情况下是没什么问题,烦就烦在value里面有一个引号,而命令行里面引号又属于不能乱用滴~ 自己又忘了批处理里面的转义符是个啥了=_= ^和%貌似都不是,还好服务器对这一项要求不严,直接发送个空数据就是了。
第二个问题就是源代码里面指定的key(姑且就这么叫了)是带有一些html字符的,譬如action=newthread&fid=10,改成action=newthread&fid=10就是。
curl -d "action=newthead&key1=value1....." -b cookie.txt -o cache.htm http://www.ebingou.cn/post.php
步骤3:正确发送完成后确认返回的页面即可。
5. Summary:
a. 没啥技术含量的,不少都是 操作。平时积累点批处理和脚本的知识有的时候是可以给自己省事滴。
b. 扩展:
需要更新cookie的操作的话,可以用curl -b -D同时指向同一个文件。
需要多代理的话加-x然后再用批处理写一个for循环从列表里面读就是了。或者adsl直接rasphone重新拨号~~
需要对付服务器的user-agent验证的话,用-A即可。(其实很多在线听歌的流媒体服务器就用到agent认证,NetTransport最早也是用的类似方法来模拟realplayer的) 想起来某人之前听的wmserver也是有个wmplayer的认证,当时就是拿的这个搞定的。
c. 其实网上那些个投票机、爆吧机还有最早的轰炸之类的破玩意儿也都是这个原理,自己扩展一下再加一点自动化的东西就是了。唯一而且也有效的办法就是用图片验证码了,自己曾经找过几个命令行的ocr软件,都不咋滴~如果自己编的话恐怕也只能针对个别验证码及其之简单到取几个点就能分析的网站了。
d. 灌水真的没啥意义~~某个管理员同学手动改下数据库帮我加点帖子吧^_^~~不然浪费生命啊~~~~~
e. 源码就不贴了,说白了其实就两行命令而已~~~~

本文标签:

很赞哦! ()

相关源码

  • (自适应)蓝色建材亚克力板材装饰材料pbootcms网站模板这款基于PbootCMS开发的响应式模板为建材板材行业优化设计,适用于亚克力板材、建筑装饰材料等企业展示需求。采用HTML5技术实现手机/PC跨终端适配,管理员通过统一后台即可同步查看源码
  • 帝国cms7.5奇闻异事末解之谜模板免费下载带数据本模板基于帝国CMS7.5系统开发,为神秘现象、未解之谜类主题网站设计。包含完整的PC端、移动端及百度MIP站同步生成功能,内置火车头采集规则模块,可快速采集目标站内容资源。整体设计风格神秘大气,符合主题定位。查看源码
  • Wordpress博客新闻主题在线商店平台betheme 21.5.6版BeTheme是一款功能丰富的WordPress主题模板,专注于为各行业提供网站建设解决方案。该模板支持WooCommerce电子商务功能,能够快速搭建在线商店平台,同时适用于博客、新闻资讯类网站建设。自2014年发布以来,该模板已经获得大量用户的使用验证。查看源码
  • (PC+WAP)pbootcms模板黑色门窗定制五金建材网站下载为门窗定制与五金建材企业设计的网站解决方案,采用PbootCMS开发,兼具专业展示与营销功能。黑色系设计突显工业质感,响应式布局确保在手机、平板等设备上的浏览体验。通过简单的内容替换,也可适用于建材贸易、家具定制等相关行业。查看源码
  • 响应式帝国cms7.5NBA黑色体育资讯模板下载本模板为体育新闻媒体、报道机构设计,采用帝国CMS7.5内核开发,具备完整的资讯发布、体育日历、数据展示功能。响应式布局确保在手机端呈现实时资讯和图文内容查看源码
  • (自适应响应式)蓝色环保机械设备网站pbootcms模板HTML5源码下载基于PbootCMS的生态环境技术展示平台,通过内容调整可应用于新能源设备、污水处理、空气净化等环保相关领域。设备参数采用对比表格展示,技术原理支持图文混排;查看源码
分享笔记 (共有 篇笔记)
验证码:

本栏推荐