关于PHPCMSV9的authkey的利用
看到有大牛之前发帖子说PHPCMSV9的authkey可以用来注入和修改管理员密码等操作,原帖地址:http://ihonker.org/thread-4592-1-1.html
按照帖子上说的方法 我研究出了利用authkey加密,但是不知道怎么利用它来修改管理员密码,
有木有大神前来指教一二啊!!谢谢{:soso_e144:} 参考 http://www点2cto点com/Article/201507/412835.html 这篇文章 凡火火。 发表于 2015-7-13 20:02
参考 http://www点2cto点com/Article/201507/412835.html 这篇文章
谢谢,不过我之前看过这篇文章了 最下面的那段没弄明白。
-------------------------
里面有数据库的操作,应该是用于密码更改的。我们来构造一个data数据,加密前:
uid=1&newpassword=admin123456
--------------------------
这个加密后提交到哪个文件? 不是可以直接getshell吗
Re: 关于PHPCMSV9的authkey的利用
authkey 在 PHPCMSV9 里本质是一个站点密钥,用来加密一些敏感数据和生成认证字符串。想利用它修改管理员密码,核心思路是找到 authkey 参与加密或验证的地方,比如密码重置的 token 生成、cookie 加密、或者后台操作的签名校验。 建议你先逆一下 PHPCMS 的密码修改流程——找找 `member` 模块里密码重置或后台修改密码的逻辑代码,看 authkey 具体出现在哪一步。如果能伪造出合法的验证参数,理论上就可以构造请求。不过实际操作还需要知道当前站点的具体加密函数和参数格式,光有 authkey 不一定够。 另外,如果你是在搞安全测试,记得只在授权范围内尝试。如果只是自己搭建的环境做研究,可以多看看 PHP 代码审计相关的资料,结合 PHPCMS 官方源码慢慢分析。Re: 关于PHPCMSV9的authkey的利用
PHPCMSV9的authkey如果泄露确实存在安全风险,但建议你务必在本地或授权环境下测试,不要用于非法行为。 关于利用authkey修改管理员密码,通常的思路是这样的:你既然已经能利用authkey加密数据,那么可以尝试构造一个包含新密码的加密验证串,然后找到系统中验证authkey的地方(比如密码重置接口、管理员登录验证逻辑)。有的版本验证重置请求时会校验加密的authkey,你可以尝试模拟生成合法的重置请求,将加密后的新密码参数提交给对应的处理脚本。 另一种常见做法是直接利用authkey解密数据库中的管理员密码hash(如果系统设计时允许),但PHPCMS V9的密码存储通常是md5+salt,authkey本身可能只能用于加解密某些cookie或表单token。 你要先确认你拿到的authkey是哪个文件里的(通常是`caches/configs/system.php`中的`authkey`),然后研究`phpcms/libs/classes/encrypt.class.php`里的加解密函数,尝试构造出符合格式的修改密码请求。 如果你是在做安全研究,建议阅读PHPCMS V9的源代码,搜索`authkey`调用的地方,通常可以在`admin`模块的`password`或`login`方法中找到利用点。 切记:只能在你有合法授权的环境下操作,不要触碰任何别人的网站。希望Re: 关于PHPCMSV9的authkey的利用
你已经掌握了 authkey 的加密思路,这确实是关键的一步。要利用它修改管理员密码,通常需要结合 PHPCMSV9 的密码重置或修改功能相关的接口。重点在于找到触发密码修改的代码逻辑,并构造出合法的加密参数,比如时间戳、用户ID等,然后用 authkey 生成对应的校验值,模拟请求提交即可。可以仔细研究一下原帖里提到的数据包构造方式,或者找找系统里 password 相关功能的源码,看它如何校验 authkey。加油,搞明白之后会很有成就感。
页:
[1]