#file_put_contents() 函数:创建并写入一。漏洞复现 EmpireCMS4.5 渗透测试及靶场搭建( 二 )。" />

漏洞复现 EmpireCMS4.5 渗透测试及靶场搭建( 二 )


本地准备一个1.php并改名为1.php.mod,用$进行转义,存放的数据表名需要填一个数据库内没有的表名(随便都行)
");?>
#file_put_contents() 函数:创建并写入一个新文件file_put_contents ( string $filename , mixed $data [, int $flags = 0 [, resource $context ]] )参数描述filename必需 。规定要写入数据的文件 。如果文件不存在,则创建一个新文件 。data必需 。规定要写入文件的数据 。可以是字符串、数组或数据流 。flags可选 。规定如何打开/写入文件 。可能的值:FILE_USE_INCLUDE_PATHFILE_APPENDLOCK_EXcontext可选 。规定文件句柄的环境 。context 是一套可以修改流的行为的选项 。

漏洞复现  EmpireCMS4.5 渗透测试及靶场搭建

文章插图
尝试访问文件所在路径,用访问,可以看到出现PHP版本信息,那么证明此文件是被上传到服务器的了,最后可以进行蚁剑连接,拿取shell
蚁剑连接成功
此时可以遍历目录
这题用到代码审计
更改文件后缀和修改MIME以及增加文件头绕过方法都是行不通的,会出现下边的空白页面
获取shell 系统–》备份数据–》选择任意–》开始备份
简介:未对数据库表名做验证,通过修改数据库表名可以实现任意代码
漏洞位置:/e/admin/ebak/phome.php
抓包修改为
放包后可以查看到php版本信息
下载下来观察里面的文件信息
.txt是没有什么重要信息的
而.php当中含有写入的()
浏览此文件所在的路径,看看会出现是否是PHP版本信息的页面,修改配置文件.txt改为.php
这样是无法连接蚁剑的,尝试将后改为一句话木马
当放包之后会出现表不存在等问题,不过不影响

同上的操作(或者也可以不执行这步,可以从链接当中知道文件的所在路径)
目录遍历,shell拿到了
代码注入获取shell
… into 语句写入php一句话木马
select '' into outfile 'C:/phpStudy/PHPTutorial/WWW/EmpireCMS/e/admin/1.php'
出现下面这种错误明显是不能够成功的,它限制数据库的导入跟导出,判断 = NULL,所以当实战中出现在这种情况下是不能够用这种方法
添加上这句语句在做尝试
显示无法写入文件
漏洞复现文章出处:
后台拿SHELL 模板–》公告模板–》JS调用登录模板
在此位置插入一句话木马,最终
源码当中的一句话木马已经被写入,证明肯定时写入到文件里面了
链接蚁剑,拿取shell
遍历目录
获取shell 栏目–》自定义页面–》管理自定义页面处可以写下
成功在网站根目录写入
连接蚁剑
目录遍历
(二)CSRF(跨站请求伪造)
1.在会员中心页面点击修改密码时抓包
将上述的html代码,编写成脚本放到下的www目录
(三)XSS(跨站脚本攻击) A、反射型:
通过目录扫描,我们可以知道很多存在漏洞的网页
1.漏洞代码位置:/e//index.html
可以先创建栏目信息
然后点击图片
漏洞页面
#漏洞原理:url地址经过函数处理之后,
把url地址中的参数和值部分直接拼接当作a标签的href属性的值和img标签的src标签的值
代码分析
if(Request("url")!=0){document.write("+Request("url")+"\" target=\"_blank\">+Request("url")+"\"class=\"picborder\" onmousewheel=\"return bbimg(this)\" οnlοad=\"if(this.width>screen.width-500)this.style.width=screen.width-500;\">");