网站安全:单引号导致的网站崩溃 L-blog入侵实录
2008-02-23 07:31:25来源:互联网 阅读 ()
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”数据包
提示:在“编辑个人资料”页面中只需填入旧密码,其他选项一概不要填写,否则将使测试失败。
将test.txt和NC放在同一目录下,运行“命令提示符”,输入如下命令“NCwww.***.com 80 < test.txt”,其中的网址为L-blog的地址,这句命令的意思是将test.txt的内容提交到L-blog上。回车后我们回看到很多乱码,不用管它,重新登陆L-blog,是不是同样提升成功了呢?
2.L-blog漏洞利用工具,见血封喉
从上文中我们可以看到,这两种L-blog漏洞的利用方法都显得比较麻烦,而且一旦利用过程中疏忽了一个字节,那么测试也将以失败告终。因此有网络安全爱好者开发了L-blog漏洞的利用程序,可以很方便得对L-blog进行测试。
运行“L-Blog提权利用程序”,如图3所示,在地址一栏中填写欲测试的L-blog地址,在Cookie中填入你在L-blog中的cookie。至于cookie的获取,可以使用WSockExpert进行抓包,在“POST”数据包中可以找到Cookie字段,复制其后面的数值到L-blog漏洞利用程序中就可以了。接着在“旧密码”选项中填入账户的密码即可。最后点击“提交”,即可对L-blog进行测试,测试的效果和NC,WSockExpert进行测试是一样的。
图3 使用专用工具测试
四、得到webshell,后台写入木马
按照上面的步骤,我们可以很快得到L-blog的管理员权限,接下去我们可以在后台写入asp木马,从而得到一个webshell,获取更大的权限。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:菜鸟学上网 教你如何排除网络故障
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash