一次失败的渗透过程

2019年04月07日 20:41:48 作者:by0531 阅读数:38814
网络安全渗透测试北京实地培训,五个月华丽蜕变,零元入学:报名加微信:18622800700,手机:18622800700。推荐学员入学奖励现金2000元

某日,朋友让我跟他一起检测一个网站

目标站点:qixx.org.cn

ping一下,发现未做CDN

直接bing.com搜索 IP:53.562.x.x  

发现有个域名很可以

1.png直觉告诉我 这可能是主站备份或者图片文件的备份,下载下来看看吧

下载下来以后,打开,居然是主站备份。美滋滋

算是一半MVC框架,一半站长自己写的吧

2.png直觉告诉我public目录才是网站的程序文件,applaction应该是模块或者应用目录,直接看myadmin目录的login.php文件

$user=$_POST['user'];
if ($user) {
	if ($user == '') {
		echo "<script type='text/javascript'>alert('输入密码好吗?');history.go(-1);</script>";


	} else {

		if ($user == '5546dfa123') {
			setcookie('user', 666);
			echo "<script type='text/javascript'>alert('登录成功');location.href='index.php';</script>";
		} else {
			$str = array('草', '错了', '还搞?', '加油');
			$key = array_rand($str, 1);
			echo "<script type='text/javascript'>alert('" . $str[$key] . "');history.go(-1);</script>";

		}

	}

}

这是啥,站长可能觉得他源码不会被别人看到。。美滋滋登录后台

结果。。。

3.png

什么情况????

哎 没办法,直接找上传点,能直接绕过上传个马就OK了

public\att\swf\avatar\upload.php

$attachment = $_FILES['Filedata'];
$uploadAdapter = new Application_Model_UploadFile();
$fileContent = $uploadAdapter->upload($attachment);
$filename = $fileContent['url'];
$size = $_FILES['Filedata']['size'];

$pic_id = time().rand(1000,9999);//使用时间来模拟图片的ID.

发现没任何过滤。可以直接上传,访问网站。。

4.png

这他妈又是什么鬼。。查看源码是<?  代码 直接显示出来

无语了。。继续看其他文件,又看到同文件夹的save_avatar.php

<?php
define('SD_ROOT', dirname(__FILE__).'/');
@header("Expires: 0");
@header("Cache-Control: private, post-check=0, pre-check=0, max-age=0", FALSE);
@header("Pragma: no-cache");
require_once($_SERVER['DOCUMENT_ROOT'].'/../application/models/UploadFile.php');

$attachment = $_FILES['Filedata'];
$uploadAdapter = new Application_Model_UploadFile();
$fileContent = $uploadAdapter->upload($attachment);
$filename = $fileContent['url'];
$size = $_FILES['Filedata']['size'];

log_result('图片大小: '.$size);


$d = array(
    'data' => array('urls' => array($filename)),
    'status' => 1,
    'statusText' => '上传成功!'
);
$msg = json_encode($d);

echo $msg;

log_result($msg);
function  log_result($word) {
	@$fp = fopen("log.txt","a");	
	@flock($fp, LOCK_EX) ;
	@fwrite($fp,$word.":执行日期:".strftime("%Y%m%d%H%I%S",time())."\r\n");
	@flock($fp, LOCK_UN); 
	@fclose($fp);
}
class pic_data
{
	 public $data;
	 public $status;
	 public $statusText;
	public function __construct()
	{
		$this->data->urls = array();
	}
}

?>

又是没有直接过滤,访问同目录的avatar.php  这个文件是前台上传的HTML,但是功能已经坏了,我们抓包地址直接改成save_avatar.php这个文件

上传以后是传到img.qixx.org.cn/\/group1\/M00\/00\/01\/rBg3gFynWTqAPq7cAAAL2Pd1HRY370.php 然后我再一次的知道错了,这个目录不解析,试了../../也没办法跨目录

再找其他的地方上传文件 没找到只能看注入了,public\chenyibei\code.php文件 

   $mark = $_POST['mark'] ? $_POST['mark'] : $_GET['mark'];

switch ($mark){

    case 'login':

        if(isset($_COOKIE['uid'])){

            echo json_encode(200);

        }else{

            echo json_encode(404);

        }

        break;

    case 'getcode':

        $phone = $_POST['phone'] ? $_POST['phone'] : $_GET['phone'];

        $type = $_POST['type'] ? $_POST['type'] : $_GET['type'];

        if(!$phone){

           echo "手机号不能为空";

            exit;

        }

        if(!preg_match("/^1[34578]{1}\d{9}$/",$phone)){

            echo "手机号不正确!";

            exit;

        }

        if(!$type){

            echo "非法参数!";

            exit;

        }else{

            //引入PDO操作类

            require 'include/MyPDO.class.php';

            //        $db = MyPDO::getInstance('localhost', 'root', '123456', 'cpg_2016', 'utf8');

            $db = MyPDO::getInstance('rm-2zeyb69921u88v6kyno.mysql.rds.aliyuncs.com', '123', 'QnC9J78K', 'chenyibei', 'utf8');

            $rs = $db->query('select name from cyb_vote where typeid='.$type.' and phone='.$phone,'Row');

虽然用了阿里云的PDO连接,但是看到type参数没任何过滤,但是权限很小。。

后记:阿里云的主机注入上传可以买一台阿里云的主机来入侵,不会封IP,本人上学少,墨水有限。有交流的朋友可以联系QQNDUxNzc5ODE=