此系统漏洞较多,文件包含,任意文件删除,任意文件读取,任意文件写入,敏感信息泄露,默认弱口令,通篇sql注入等,均可无需登录GetShell,各类型漏洞打包处理。这里仅做漏洞代码分析,案例简单测试,请勿用于非法用途。
0x001
首先来说说为什么均无需登录即可操作这些漏洞
1、在/help/php/login.php登录后的操作,因为在判断session后,错误时没有exit
2、在首页index.php登录后的操作,压根就没有进行登录验证,直接操作
所以以上两种情况即可无需登录操作整个系统的内容了
0x002
默认弱口令
这里在/help/php/login.php和index.php处的登录存在系统默认弱口令
数据库存在弱口令:
这些弱口令在存储和验证时都会通过一个弱加密(偏移5位)函数来处理
0x003
敏感信息泄露
这里后台存在很多敏感信息泄露,都是系统运行的数据信息
这里给一处系统配置信息泄露:
这里直接包含了setting.inc.php文件,无需登录直接访问如下链接即可获取系统配置信息:
http://124.129.7.215/modules/manage/server/requestWorkMode.php
http://61.150.109.61:81/modules/manage/server/requestWorkMode.php
</code>
0x004
任意文件包含,这里存在三处
第一处文件包含,文件modules/curve/server/printcurve.php
这里没有进行登录验证
将action参数带入所要包含的文件中,导致文件包含
payload:
第二处文件包含,文件modules/event/server/printevent.php
跟第一处文件包含原理一样
payload:
第三处文件包含,文件modules/tmr/server/switchControlPanel.php
func参数直接进入include中,导致包含产生
payload:
当然这里所要包含的文件可以直接从fckeditor进行上传了
0x005
任意文件删除
第一处文件删除,文件help/php/deleteTheme.php
可以看到这里登录验证失败后,直接header跳转,并没有exit,所要继续执行
参数filename进入函数delseltheme,然后进入doThemeDelete函数,最后进入deleteFile函数,文件util.inc.php
到最后pathfile直接被unlink删除,导致任意文件删除
payload:
filename为你要删除的任意文件,这里即可直接删除/help/userfiles/file/root.txt
当然这里的id参数还存在sql注入漏洞,后面再说
第二处文件删除在,同样的问题在help/php/modifyTheme.php
同样filename进入deleteFile函数,导致任意文件删除,原理同第一处
第三处文件删除在,modules/manage/server/reportTemplates.php文件
可控变量data进入files变量,然后进入deleteFile函数,最后通过拼接路径进入unlink
0x006
任意文件读取
文件/help/php/modifyTheme.php
同样这里的登录绕过
调用了函数getThemeContent,参数filename是我们可控的
filename参数进入readHtmlFile函数,文件util.inc.php文件
参数name直接被fopen,fread,导致任意文件读取漏洞
payload:
这里的xajax参数为要调用的函数,这里为getThemeContent
xajaxargs参数为需要读取的filename,这里为当前目录下的文件,可以../读取任意文件
0x007
任意文件写入GetShell
文件/modules/manage/server/updateWorkMode.php
注意看这里的updateSetting($_REQUEST['values'])
从代码中看到,这里的values进入updatesetting函数后,只有item[1]能进入文件中,而去还是经过encrypt函数加密处理的
这里只进行了assic码的偏移操作
所要我们要写入我们的内容时,这里得先将恶意代码内容的assic码减5后在写入文件即可
0x008
sql注入漏洞
到此为止,此SCADA监控web系统中的漏洞基本上都涉及到了,各个类型都存在多个漏洞
这里仅做代码分析,给出payload,部分给出案例测试
至于漏洞利用和对此SCADA系统的影响就不在深入了,见漏洞:
http://wooyun.org/bugs/wooyun-2010-0131500