首页 | 安全文章 | 安全工具 | Exploits | 本站原创 | 关于我们 | 网站地图 | 安全论坛
  当前位置:主页>安全文章>文章资料>入侵实例>文章内容
记一次不同寻常的网站渗透测试过程,上传基于time()
来源:http://www.freebuf.com 作者:xiaosan123ss 发布时间:2012-08-21  

发现注入点:
http://www.xxx.com/xx.php?id=xxxx 
直接sqlmap脱库,发现有admin表,内容是显示的是账号admin密码admin,这时心里高兴了下,没加密。可是,曲折的在后面呢 !管理后台很容易找到,直接上admin admin 可是,显示密码不对,怎么回事??
在看看数据库,翻遍数据库,账号密码也就这一个admin admin,(事实上也是这么回事) ,看看它登陆页面的源码吧,注入点能爆出路径,可以读出文件内容,直接读login.php
内容如下:

 

以下为引用的内容:
<?
 $filename = "password.txt";
 $fd = fopen( $filename, "r" );
 $contents = fread($fd, filesize($filename));
 fclose( $fd );
 if($T1=="admin"){
     if($T2==$contents){
        setcookie("ad","$T1");
        header("location:editor/edit_index.php");
     }else{
     ?>
      <script language="javascript">
      alert("密码错误");
      window.history.back();
      </script>
     <?
   }
 }else{
   ?>
    <script language="javascript">
      alert("用户名错误");
      window.history.back();
      </script>
   <?
   }
?>
 看到了吧!!!当时我就愣了一下,靠。。。。。。。。你妹的,怪不得找不到密码呢
好了,直接在域名后面加password.txt,密码出来了。
登陆后台页面,发现三个上传点,第一个是eweb3.8 (直接放弃),第二个上传点控制
的非常死,各种变换都不行。还是第三个注入点有用,直接上传d,php,提示上传成功,

 

呵呵,上传是成功了,但是找不到路径,找啊找就是找不到路径。。晕啊。。。。。。。。。
找上传图片的路径,这时在读处理上传的php代码,代码如下

 

以下为引用的内容:
<?
if($_FILES['sytp']['name']!="none"&&$_FILES['sytp']['name']!=""){//判断上传文件是否为空
$thistype=$_FILES['sytp']['type'];//将上传的类型传给$thistype
//echo time().$_FILES['sytp']['name'];
//exit;
if("image/pjpeg"==$thistype or "application/x-shockwave-flash"==$thistype or "image/gif"==$thistype){//判断是否是我要的类型
  $file_name = "shouyetupian/".time().$_FILES['sytp']['name'];//time()是为了区分两个文件不是同一时间传的
include("../connect.php");//调用connect.php里的内容
$sql="select count(*) from shangchuantu";
$result=mysql_query($sql,$db);
$jie=mysql_fetch_row($result);
$zhong=$jie[0];
if($zhong<5){
$sql1="select max(paixu) from shangchuantu";
  $result1=mysql_query($sql1,$db);
 $jie1=mysql_fetch_row($result1);
 $zhong1=$jie1[0];
$zhong1=$zhong1+1;
  $query="insert into shangchuantu values('','$file_name','".$_POST['url']."','','$zhong1')";
  mysql_query($query,$db);

  if(!move_uploaded_file($_FILES['sytp']['tmp_name'], $file_name)) {//上传文件,$_FILES['sctb']['tmp_name']临时目录传到$file_name实际目录
 ?>
  <script language="javascript">
  alert("文件上传失败,请稍候再试");
  window.history.back();
  </script>
 <?
}else{//上传成功
?>
<script language="javascript">
alert("文件上传成功!");
  location.href="shanchuantu.php";

</script>
<?

}
}else{
?>
 <script language="javascript">
  alert("图片不能超过5张");
  window.history.back();
  </script>
<?
}
}else{//如果类型不对
 ?>
  <script language="javascript">
  alert("文件上传失败,请稍候再试");
  window.history.back();
  </script>
 <?

}
}else{
?>
<script language="javascript">
  alert("请选择上传图片");
  window.history.back();
  </script>
<?
}
?>

关键是file_name 是怎么形成的,

$file_name = "shouyetupian/".time().$_FILES['sytp']['name'];
Time()
返回自从Unix 纪元(格林威治时间1970 年1 月1 日00:00:00)到当前时间的秒数
比如你上传文件名为d.php,上传之后文件名为:     当前时间d.php
从代码页可以看出,是不返回上传后的文件名,这时怎么办,根据时间去碰文件名
本地搭建php服务器,echo 出time()
上传之前访问本地
http://127.0.0.1/time.php
返回时间:1345279425
这时快速的去目标网站去上传图片,多上传几个,道理你懂的,呵呵
上传完了之后在访问http://127.0.0.1/time.php
记下时间1345279475
相差50秒,也就是说上传的文件名在1345279425d.php—-1345279475d.php
之间.好吧,去碰吧。。。。。。。。。。。。。。。。。。。。。。。。。
碰啊碰。。。。。碰到了啊。。。。。。
菜刀连接,,成功!!!!!!!!!


 
[推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论:
  热点文章
·另类网站入侵之一句话木马图片的
·0day批量拿站webshell,挖掘机是
·利用ewebeditor 5.5 - 6.0 鸡肋
·OmniPeek抓包的一点看法
·强大的嗅探工具ettercap使用教程
·Windows系统密码破解全攻略
·破解禁止SSID广播
·XSS偷取密码Cookies通用脚本
·XSS漏洞基本攻击代码
·Intel 3945ABG用OmniPeek 4.1抓
·KesionCMS V7.0科汛内容网站管理
·破解无线过滤MAC
  相关文章
·无线Hacking之D.O.S与AP欺骗
·中间人攻击-DNS欺骗
·如何渗透测试WordPress网站
·PHP一句话Webshell变形总结
·利用sslstrip和ettercap突破ssl
·Linux 共享库注入后门
·调戏突破SecureRDP对远程桌面连
·记一次对Discuz官方论坛的渗透检
·Novell ConsoleOne Hack Evoluti
·网页游戏攻与防
·一次艰难的渗透纪实(下)
·一次艰难的渗透纪实(上)
  推荐广告
CopyRight © 2002-2022 VFocuS.Net All Rights Reserved