akcms文件任意命名漏洞
最近在练习PHP代码审计,随便下了一个akcms源码模版分析了下,貌似这个建站源码用的人也不少。刚进t00ls,请各位多多指教。废话不说了,直接进正文。
0x01 漏洞代码分析
这个漏洞是由于作者的逻辑错误的导致的,漏洞存在于include\common.func.php文件中的checkfilename函数,代码如下图
可以看出红线圈出的部分,是做一个逻辑判断,如果文件名中含有php或者有创建权限的用户将返回错误信息。这里作者的原意应该是“若文件名中含有php或者用户没有创建权限时,返回信息”,但是,在iscreator函数前却多了一个!号,导致整个过滤成了摆设。并且,作者只是单纯的过滤了php,如果用户输入PHP,pHp等字样依旧可以创建php脚本。
0x02 漏洞利用
漏洞重现过程,我使用了后台的模版功能,首先要创建一个带有PHP代码的模版,如下图
在生成页面的模块下,选择使用这个模版,并将文件名设置为.php结尾,如下图
保存之后,在根目录下便会生成一个名为T3.php的文件。访问效果如下图
0x03 总结
1. 这周主要在学习PHP代码审计,那这套cms程序做练习用的,在整个的审计过程中,感觉作者的安全意识不高,尤其是在代码开始部分,代码会先判断PHP魔术引号功能是否打开,如果打开则将转义后的字符串,进行反转义,也就是说将魔术引号的作用取消掉。这个做法,完全是没有一点安全观念的体现
2. 整个跟踪过程还是苦中有甜的,毕竟是挖到了漏洞。也发现自己在漏洞挖掘的过程中的一些问题,思维不够发散,PHP代码功底不够硬。之后,还是要去再看看PHP代码审计的文章,吸取一些前人总结的经验
0x01 漏洞代码分析
这个漏洞是由于作者的逻辑错误的导致的,漏洞存在于include\common.func.php文件中的checkfilename函数,代码如下图
可以看出红线圈出的部分,是做一个逻辑判断,如果文件名中含有php或者有创建权限的用户将返回错误信息。这里作者的原意应该是“若文件名中含有php或者用户没有创建权限时,返回信息”,但是,在iscreator函数前却多了一个!号,导致整个过滤成了摆设。并且,作者只是单纯的过滤了php,如果用户输入PHP,pHp等字样依旧可以创建php脚本。
0x02 漏洞利用
漏洞重现过程,我使用了后台的模版功能,首先要创建一个带有PHP代码的模版,如下图
在生成页面的模块下,选择使用这个模版,并将文件名设置为.php结尾,如下图
保存之后,在根目录下便会生成一个名为T3.php的文件。访问效果如下图
0x03 总结
1. 这周主要在学习PHP代码审计,那这套cms程序做练习用的,在整个的审计过程中,感觉作者的安全意识不高,尤其是在代码开始部分,代码会先判断PHP魔术引号功能是否打开,如果打开则将转义后的字符串,进行反转义,也就是说将魔术引号的作用取消掉。这个做法,完全是没有一点安全观念的体现
2. 整个跟踪过程还是苦中有甜的,毕竟是挖到了漏洞。也发现自己在漏洞挖掘的过程中的一些问题,思维不够发散,PHP代码功底不够硬。之后,还是要去再看看PHP代码审计的文章,吸取一些前人总结的经验
评论26次
这个是在有后台情况下的拿webshell吧!
楼主发点PHP代码审计的资料来啊
LZ要是把这审计的过程在加上就更亮了
学xi了,以后就该多发点这样的
额、我混淆了,linux的文件大小写混淆了
xi望多出作品
直接生成恶意php脚本,跟xi统是不是linux有什么关xi。。。
继续膜拜。。。。
好简洁 值得学xi
xi望楼主多多挖 洞
灰常给力的说
这个漏洞貌似在哪里见过
进来学xi
好久没看黑客了。
不明白你的意思,你是想说这个漏洞只能在windows主机下利用?
好像只在windows主机下受用吧? linux不成功
忽略大小写 硬伤啊 建议用stristr函数搜索即可
膜拜楼主大黑客
帅
差不多,盗用他小说的图片当logo了