网络通信 频道

单引号导致的网站崩溃 L-blog入侵实录

L-blog是一款较为成熟的blog程序,拥有强大的功能和简便的操作,这些优点使L-blog有着数量可观的用户群。然而,L-blog程序中代码的过滤不严,导致黑客可以向L-blog中写入恶意数据,从而将自己的账号提升为管理员,进而登录L-blog后台管理系统,写入webshell,并进一步得提升权限,从而获取服务器的控制权。威胁如何产生?我们又该如何防范?这正是本文所要讲述的重点。

  一、洞查先机,漏洞成因早知道

  下载L-blog程序,用记事本打开其中的member.asp,可以找到如下代码:“mem_Sex="&CheckStr(Request.Form("mem_Sex"))&"”,这句代码是对用户在修改资料时的性别一栏进行更新,而这句代码却存在过滤不严的漏洞,黑客可以绕过验证,将需要写入的数据本地提交到“性别”一栏中,从而利用这个漏洞将账号提升为L-blog管理员。

  目前网上使用最多的L-blog有两个版本,L-Blog V1.08 (SE) Final和L-Blog V1.10 AIO,后者是前者的升级版本,但是这两个版本都存在过滤不严的漏洞,由于两者的代码不同,因此有着不同的利用方法,下面我们就对这两个版本的利用方法进行阐述。

  二、提升权限,构造本地提交页面

  我们首先打开使用L-Blog V1.08 (SE) Final版本的blog,注册一个用户。完成后我们点击用户控制面板上的“修改资料”,进入“编辑个人资料”页面。这时我们点击IE的查看菜单,选择“源文件”,将弹出的源文件内容保存为test.txt。用记事本的“查找”功能可以找到如下代码:“form action="member.asp?action=edit&edit=post"”,由于我们需要本地提交,因此需要将这里的相对路径改为绝对路径,即将member.asp前面的网址补充完整。继续往下看,来到如下代码处:

 

“<input name="mem_Sex" type="radio" value="1" > 男 <input type="radio" name="mem_Sex" value="2" > 女 <input type="radio" name="mem_Sex" value="0" checked> 保密”



  这段代码就是让用户在修改个人资料时选择自己的性别,从正常的页面中我们可以看到,“性别”这一栏中是“男,女,保密”三个选项的单选框,那么我们又如何将恶意数据从“性别”这一栏写入呢?

  选中上文中的这段代码,将其替换为“< input name="mem_Sex" type="text" size="36" value="0" >”,然后保存这个文本文档,接着将这个文本文档的后缀名改为htm。用IE打开test.htm,网页会显示不全,但是可以看到,“性别”一栏处已经从单选框变成了文本框,这也就意味着我们可以写入任意数据了。

在“性别”一栏的文本框中输入:“0,mem_Status="SupAdmin"”(不包括引号),点击“确定编辑”即可完成本地提交。我们重新登陆L-blog,可以发现,在“用户中心”中多出了两个选项“发表日志”和“系统管理”(如图1),这两个选项是只有L-blog的管理员才能够看到的,因此证明我们已经成功将自己的账号提升为管理员了。


图1 成功提升帐户为管理

  三、绕过验证,利用工具提交数据

  在上文中我们已经说到L-blog的两个版本利用方法不同,那不同在哪呢?由于L-Blog V1.10 AIO更新了验证机制,使原有的本地提交页面这种方法已经不起作用。然而新版本只是更新了验证机制,而并没有从根本上修补漏洞,因此我们可以利用工具将数据提交上去,从而绕过新版本的验证机制,其效果和构造本地提交页面是一样的。

  1.NC、WSockExpert,双剑合壁

  NC和WSockExpert是本地提交入侵中经常用到的工具,WSockExpert用于数据包的抓取,NC用于数据包的提交。下面我们就来看看如何利用这两款工具绕过L-blog的本地提交验证。同上文中步骤,注册完成后来到“编辑个人资料”页面,我们运行WSockExpert,点击工具栏处的“打开”按钮,找到IE的进程,双击,选中当前L-blog的进程信息,点击“OPEN”进入抓包状态。我们切换回L-blog,在“编辑个人资料”页面中填入旧密码,点击“确定编辑”。这时我们会发现
WSockExpert中已经抓取到了许多数据包,其中可以找到一个以“POST”开头的数据包,这正是我们所需要的。选中以“PSOT”开头的数据包,在下方会出现其具体内容(如图2)。将所有的内容复制下来,保存为test.txt,最内容的最下方可以找到mem_Sex这一个参数,其默认的参数值为“0”,我们需要将它修改为“0,mem_Status="SupAdmin"”,由于我们修改后使整个数据包增加了22个字节,所以我们还需要对数据包中Content-Length参数进行相应的修改,完成后保存。


图2 抓取“POST”数据包 

  提示:在“编辑个人资料”页面中只需填入旧密码,其他选项一概不要填写,否则将使测试失败。

文章转载地址:http://www.cnpaf.net/Class/hack/0610111049147083492.html

0
相关文章