快捷搜索:  网络  CVE  渗透  后门  扫描  木马  黑客  as

Hongcms 3.0.0后台SQL注入漏洞阐发

*

1、违景先容

HongCMS是一个轻量级的中英文企业网站体系,走访速率极快,使用简单,程序代码简洁严谨,功能强盛,完全免费开源,可用于建设种种类型的中英文网站,同时它是一个小型开发框架。

二、漏洞描摹

程序在后台进行清空数据库操作时对传入的数据库名过滤不严格,可插入以及执行恶意sql语句。

3、影响版本

Hongcms < 3.0.0

4、漏洞细节

起首,我们登录到网站后台治理定位到体系—>数据库珍爱。

f1.png体系默认情形下只允许我们对sessions以及vvc数据表进行清空操作,我们随机选择一个,此处我使用vvc表来进行阐发,随后我们点击清空按钮并结合phpstorm对执行流程进步履态调试。为了方便人人能清楚地看清执行过程,笔者已经在症结的函数地位配置了断点。

起首程序在APP.php第170利用用call_user_func函数对接受的参数进步履态函数归调:

f2.png跟进operate:

f3.png将数据表名称传递给ForceStringFrom函数,继续跟进ForceStringFrom:

ForceStringFrom通过$_GET[$VariableName]获取我们传递的tablename参数值并传递给了ForceString,跟进ForceString

f5.png

ForceString判定Invalue是否为字符串以后随即将值传递给给EscapeSql,函数进行安全过滤,继续跟进。

f6.png

起首函数判定了gpc是否开启,要是开启则使用stripslashes进行过滤,否则将使用htmlspecialchars并对\0以及空格字符进行了替代,随后判定mysql_real_escape_string或mysql_escape_string函数是否存在,并调用相应的函数进行编码,否则使用addslashes。随后程序进入switch语句进步履作匹配,根据不同的action参数值进行相应的操作。

f7.png

我们定位到emptytable,程序将tablename值传入了EmptyTable函数。

f8.png

跟进EmptyTable。

f9.png

在这里我们看到定义了要执行的sql语句,并将其传入了exe函数,数据库黑客,跟进exe。

f10.png

Exe接收了传递的sql语句后随即进行了执行,并返归执行效果。

f11.png

最后调用PrintResults将效果打印到后台显示,我们可以看到在全部执行过程中程序仅仅使用了内置的函数以及简单的替代函数对传入的参数值进行了安全处理,而这些函数是可以被绕过的。

5、漏洞复现

经过上一节的阐发,下面我们就要着手组织我们的sql语句,一样我们定位到数据表操作的页面点击要清空的数据表,随后我们用burp截断来修改我们的数据表名称来注入我们组织的sql语句。

f12.png此处我们将数据表名称改成` where vvcid=1 orupdatexml(2,concat(0x7e,(version())),0) or `

一样我们来跟踪我们传入的参数值:

f13.png可以看到我们成功的绕过了程序的安全防护并正确的进行了返归,我们继续往下走看看终极的要执行的sql语句,是不是我们想要的效果。

f14.png看到执行的sql语句以及我们预想的同样,我们返归后台页面看看执行的效果:

f15.png可以看到当前使用的数据库版本已经被查询了出来。

6、修补措施

体系已休止珍爱,可以考虑自行装置WAF进行防护。

*

您可能还会对下面的文章感兴趣: