注:参考小迪课程所写
漏洞描述:emlog v6.0.0后台co***.php页面存在SQL注入漏洞。攻击者可利用该漏洞执行非法sql命令操作数据库敏感文件。
影响版本:emlog v6.0.0
1、根据漏洞描述可知,下图comment.php和configure.php其中一个存在漏洞。根据其名字翻译可知comment为评论,configure为配置,那么comment.php出现漏洞的概率大。
图1
2、找漏洞第一步:寻找可控变量,优先找无过滤的可控变量。
图2
看图2可发现 $ip 变量为无过滤可控变量 ,delCommentByIp()函数使用了$ip变量,那么就可以追踪delCommentByIp()函数看看是否有关于MYSQL函数操作。
图3
(图3)跟踪 delCommentByIp()函数果然发现了SQL查询语句,再往下看发现可疑函数query(),继续跟踪query()。
图4
(图4)发现mysql_query()函数,确定了 $ip变量是可以直接影响到数据库的。
3、找漏洞第一步:确定可控参数,利用可控参数
由图2可知需要$action=='delbyip'才能利用到可控参数$ip,所以要跟踪$action是否可以控制
图5
由图5可知 $action可控制,下一步就可以尝试输出能不能有回显
图6
由图6可知尝试输出不仅没回显还似乎没有执行到 $ip变量,看图2可能是执行 $ip变量之前某一步没有执行导致的,追踪下 checkToken()静态方法。
图7
看图7发现需要满足$token变量的条件
图8
看图8可知满足 $token变量的条件后跳转页面了并没有回显,又由图2可知emDirect("./comment.php?active_del=1");代码正是跳转页面的意思,可以判断出有SQL盲注漏洞。解法如图9所示。
图9
总结: 虽然有sql注入漏洞,但是需要登录后台,略显鸡肋